• Pascal 语言中字符与字符串


    【题目】输入一段文章(255个字符以内),求文章中单词的个数,相同单词只记一次,The 和 the 视作相同。

    【敲代码】
    1. //网友代码
      var
       article,w:string;
       arr:array[1..255] of string;
       i,len,ans:longint;
      function check(w:string):boolean;
      var
       i:longint;
      begin
      if len=0 then exit(true);
      for i:=1 to len do
      if arr[i]=w then exit(false);
       exit(true);
      end;
      begin
       readln(article);
       article:=upcase(article);//将所有字符转换为大写,解决 the=The 问题
      while(article[1]<'A')or(article[1]>'Z')do
      delete(article,1,1);
      while length(article)>0do
       begin
       i:=1;
      while(article[i]>='A')and(article[i]<='Z')do
       inc(i);
       w:=copy(article,1,i-1);
      delete(article,1,i);
      if check(w) then
       begin
       inc(len);
       arr[len]:=w;
       inc(ans);
       end;
      while(article[1]<'A')or(article[1]>'Z')do
      delete(article,1,1);
       end;
       writeln(ans);
      end.

      下面是我对这道题的解决办法,只提供一些步骤:

    1. //空格分隔单词,每一个单词分别读入 string 数组中
      i:=1;
      j:=1;
      read(a[1]);//读入第一个字符
      while a[i]<>'.'do;//a数组为char型
      begin
       inc(i);
       read(a[i]);
      end;
      t:=i;//a数组中内容个数
      for i:=1 to t do
      if(a[i]<>' ')and(a[i]<>'.') then sen[j]:=sen[j]+a[i]
      else inc[j];//空格分隔处理
      j:=j-1;//在最后一个'.'后j会+1,但并没有存放数据,所以这里要减去1
      //去重复
      n:=j;//下面要用j做循环,所以把j保存在n中
      count:=j;//count是最后要输出的结果
      for i:=1 to n-1do
      for j:=i+1 to n do
      if(a[i]=a[j])and(i<>j) then dec(count);//去除重复
  • 相关阅读:
    linux目录文件与系统启动(1)系统目录简介
    linux常用命令
    linux命令行
    关于Xshell6无法连接虚拟机centOS7的解决方案
    远程连接服务器和查错
    ip、端口、协议、网关、DNS
    linux分区
    linux系统补丁更新 yum命令
    VMWare网络适配器的三种模式
    springboot 配置springmvc?
  • 原文地址:https://www.cnblogs.com/RhinoC/p/4303070.html
Copyright © 2020-2023  润新知