zoukankan      html  css  js  c++  java
  • 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);//去除重复
  • 相关阅读:
    [笔记] 《我的第一本c++书》
    [c++] 输入输出
    [c++] STL 标准算法
    [c++] 模板、迭代器、泛型
    [计算机科学] 图灵机
    shell专题(五):运算符
    shell专题(四):Shell中的变量
    shell专题(三):Shell脚本入门
    shell专题(二):Shell解析器
    shell专题(一):Shell概述
  • 原文地址:https://www.cnblogs.com/RhinoC/p/4303070.html
Copyright © 2011-2022 走看看