Pascal 语言中字符与字符串

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109541.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 语音合成综述

    语音合成综述title:语音合成综述tags:新建,模板,小书匠grammar_cjkRuby:true语音相关基础知识点:时域信号:一维原始信号傅里叶变换:得到频域特征短时傅里叶变换:傅里叶变换得到了频域信号,但是丢失了时域信号,所欲通过STFT得到时频信号梅尔频谱倒谱系数:单单频率信号表达不足,为了更加和人的耳朵听觉相符,我们使用了mel窗滤波,得到人耳的频率段幅度系数梅尔声谱…

    2022年6月26日
    31
  • PyCharm汉化之后,点击设置没反应,完美解决方法[通俗易懂]

    PyCharm汉化之后,点击设置没反应,完美解决方法[通俗易懂]请先检查下pycharm的安装目录lib下是不是有中文汉化包resources_cn.jar有过有的话建议:1.更换一个汉化包或者将原来的resources_en.jar也放进lib目录下2.将中文汉化包resources_cn.jar删除,只留下原版的resources_en.jar…

    2022年5月9日
    337
  • C语言数组反转

    C语言数组反转一个C语言程序代码,反转数组。题目:编写一个函数,实现传入的整型数据各位数字的逆序重排,比如:传入1278,函数返回值为8721;传入-257,函数返回值为-752;传入510,函数返回值为15。#include<stdio.h>#include<stdlib.h>#include<math.h>#definemaxArraySize100//定义数组最大长度,防止输入的整型数据超出int表示的范围intinverseIntAr

    2022年5月2日
    38
  • 如何将a4排版成a3双面打印_A4如何双面打印

    如何将a4排版成a3双面打印_A4如何双面打印A4排成A3双面打印怎么操作?A3纸张的尺寸是297mm×420mm,其大小相当于两张A4的大小,A4是大家工作及生活中使用较多的纸张尺寸,A3纸张不常用,但是遇到一些比较重要的画报、图纸等之类的资料,A3纸张就比较突出了。在城市周边打印店,打印资料时多以使用A4纸张居多,所以如果您到打印店打印A3纸张,很有可能会被打印店告知:无法打印。有时候可能不是打印店员工不会帮您排版,而是打印店的设备不支持为大家打印A3大小的纸张资料。今天小编给大家介绍一个比较专业的网上在线打印平台——易桌面打印室,这是一个网

    2025年9月20日
    7
  • ForkJoin 线程池[通俗易懂]

    ForkJoin 线程池[通俗易懂]一、分而治之严格来讲,分而治之不算一种模式,而是一种思想。它可以将一个大任务拆解为若干个小任务并行执行,提高系统吞吐量。主要讲两个场景,Master-Worker模式,ForkJoin线程池。ForkJoin线程池是jdk7之后引入的一个并行执行任务的框架,其核心思想也是将任务分割为子任务,有可能子任务还是很大,还需要进一步拆解,最终得到足够小的任务。将分割出来的子任务放入双端队列中,然后几个启动线程从双端队列中获取任务执行。子任务执行的结果放到一个队列里,另起线程从队列中获取数据,合并结果。

    2026年1月29日
    3
  • linux下杀死某个进程_shell脚本获取进程号并杀死进程

    linux下杀死某个进程_shell脚本获取进程号并杀死进程在做项目的时候经常会出现程序死机、锁死、无响应等情况,这时候就需要找到程序相应的进程将其杀掉即可。步骤如下:1.定位进程top命令:可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。输入top后可以看到如下的界面,实时显示进程情况。ps命令:processstatus的简称,用于报告当…

    2022年9月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号