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);//去除重复
时间: 2024-12-08 03:05:30

Pascal语言中字符与字符串的相关文章

C语言中字符型和字符串型的区别?

C语言中只有字符型类型,没有字符串型类型.字符类型用一个带符号的8位二进制编码表示,其性质与int相同,只是只有一个字节.表示字符的ASCII编码使用其中的0~127,所以要明白字符类型(char)其实是一个一字节整型,并不只用来表示字符.由于C中没有字符串类型,所以在处理字符串时是利用字符型数组来实现的,在字符型数组中一个接一个地存储字符的ASCII编码,并在最后一个字符后加一个'\0'表示这一串字符结束了,就形成所谓“字符串”.

C语言中字符、字符串、字符数组

char a = 'h'; memory h char a[] = "Hello"; memory           H e l l o '\0' string sComparec = "Hello" memory             H e l l o '\0'   char *a = "Hello"; char* mag[] = { "Love Stor", "Harry", "Pott

C语言中字符数组和字符串指针分析

这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这做个小总结,也算加深下自己的印象,写了下面的测试程序: #include <stdio.h> int main(int argc, char *argv[]){ char day[15] = "abcdefghijklmn";  char* strTmp = "opq

C语言之字符与字符串

字符和字符串 字符是一个字母.数字.标点或其他诸如此类的符号:字符串是任何字符序列. 字符串用于存储由字母.数字.标点和其他符号组成的文本数据. C语言使用char数据类型老存储字符.char是一种整型数值类型. C语言存储字符的方式:在计算机内存中,所有的数据都是以数值方式存储的. 字符并不能直接存储,但是每个字符都有对应的数值编码. 这种编码被称为ASCII码或ASCII字符集. 在这种编码中,每个大小写字母.数字.标点和其他符号都对应于一个0~255值. <span style="f

c语言中的部分字符串和字符函数

// // main.c // homeWork1230 // // #include <stdio.h> #include <string.h> #include <ctype.h> int main(int argc, const char * argv[]) { //// strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. // printf("

【总结】C语言中常见的字符串处理函数

------------------------------------------------------------------------------------------- C语言中没有字符串类型,但是为了方便对字符串进行操作,提供了许多字符串处理函数.如: 输入输出字符串,字符串的拷贝,连接,比较等操作函数.值得注意的是:在使用输入输出,即gets. puts函数时应该引入头文件<stdio.h>.在使用其他操作函数时,引入头文件<string.h>.另外,在使用连 接

C#中字符和字符串总结

Char类是C#提供的字符类型,String是C#提供的字符串类型. 字符: Char类在C#中表示一个Unicode字符. Char类只定义一个Unicode字符. Char类常用的方法及说明如下: 方    法 说    明 IsControl 指示指定的Unicode字符是否属于控制字符类别 IsDigit 指示某个Unicode字符是否属于十进制数字类别 IsHighSurrogate 指示指定的Char对象是否为高代理项 IsLetter 指示某个Unicode字符是否属于字母类别 I

C语言的字符与字符串处理函数

字符处理有两类函数:分类与转换.分类函数的名称以is开头,转换函数的名称以to开头,一般在ctype.h头文件中声明.宽字符处理也有分类与转换函数之分,这些函数的名称以isw和tow开头,还有通用的分类与转换函数,wctrans和towctrans,这些函数都在头文件wctype.h中定义. 习惯上,C语言中的字符串是以null字符('\0')结尾的字符数组.C89增补1增加了与普通字符串函数并行的宽字符串函数,差别在于宽字符串函数所带的参数类型为wchar_t*而不是char*,宽字符串函数名

C语言输入字符和字符串

C语言有多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据. getchar().getche().getch():这三个函数都用于输入单个字符. gets():获取一行数据,并作为字符串处理. scanf() 是最灵活.最复杂.最常用的输入函数, 输入单个字符 输入单个字符当然可以使用 scanf() 这个通用的输入函数,对应的格式控制符为%c,上节已经讲到了.本节我们重点讲解的是 getchar().getche(