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);//去除重复

     

转载于:https://www.cnblogs.com/RhinoC/p/4303070.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值