字符与字符串课件

上传人:ni****g 文档编号:571262613 上传时间:2024-08-09 格式:PPT 页数:29 大小:80KB
返回 下载 相关 举报
字符与字符串课件_第1页
第1页 / 共29页
字符与字符串课件_第2页
第2页 / 共29页
字符与字符串课件_第3页
第3页 / 共29页
字符与字符串课件_第4页
第4页 / 共29页
字符与字符串课件_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《字符与字符串课件》由会员分享,可在线阅读,更多相关《字符与字符串课件(29页珍藏版)》请在金锄头文库上搜索。

1、第五讲第五讲 字符与字符串字符与字符串字符与字符串字符型用字符型用char作为标识符。字符型必须用单引号括起来,作为标识符。字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。引号中有一个字符,否则就是字符串。Vara:char;a:=b;a:=B;a:=2;一、字符型一、字符型字符与字符串知识点:知识点:1、字符的、字符的ASCII码(序号):一一对应关系码(序号):一一对应关系字符字符0123456789ASCII48495051525354555657字符ABCZASCII

2、65666790字符abczASCII 979899122字符与字符串、函数:、函数:ord(x)chr(x))、)、ord(x):返回字符返回字符x的的ASCII码。码。i:=ord(A);j:=ord(B);n:=ord(1);write(I,j,n);656649)、)、chr(x):返回:返回ASCII码为码为x的字符。的字符。vara:char;a:=chr(98);writeln(a);write(chr(97);字符与字符串3、字符大小的比较、字符大小的比较(相应字符相应字符ASCII码大小的比较码大小的比较):ASCII码大的字符大。码大的字符大。ba51aA4、数字字符转换为

3、相应的数字的方法。、数字字符转换为相应的数字的方法。varx:char;a:integer;x:=3;a:=ord(x)-48;字符与字符串练习题目:练习题目: 从键盘上输入一串字符(可能含数字、小写字母),以从键盘上输入一串字符(可能含数字、小写字母),以# #作为输入作为输入结束标志。结束标志。编程完成:编程完成:统计输入字符中每个小写字母出现的次数(没有出现的不输出)。统计输入字符中每个小写字母出现的次数(没有出现的不输出)。样例:样例:输入:输入:2bcdaab33wycc#输出:输出:a2b2c3d1w1y1 字符与字符串算算法法一一:varch:char;n,i:integer;a

4、:array1.26ofinteger;统计字母出现的次数统计字母出现的次数beginfori:=1to26doai:=0;read(ch);whilech#dobeginif(ch=a)and(ch0thenwriteln(chr(i+96),ai);end.字符与字符串varch:char;n,i:integer;a:array97.122ofinteger;统计字母出现的次数统计字母出现的次数beginfori:=97to122doai:=0;read(ch);whilech#dobeginif(ch=a)and(ch0thenwriteln(chr(i),ai);end.算算法法二二:

5、字符与字符串算算法法三三:varch:char;n,i:integer;a:arraya.zofinteger;统计字母出现的次数统计字母出现的次数beginforch:=atozdoach:=0;read(ch);whilech#dobeginif(ch=a)and(ch0thenwriteln(ch,ach);end.字符与字符串字符串用于存放批量字符的一串字符。字符串用于存放批量字符的一串字符。 VarVar:a a:string;string;或或VarVar:a a:stringn;stringn;A:=helloA:=hello其中正整数其中正整数n(0=n=255)n(0=n=2

6、55)表示构成字符串的字符最多个数。表示构成字符串的字符最多个数。若字符串说明中没有指定长度,缺省值为若字符串说明中没有指定长度,缺省值为255255。FreepascalFreepascal中新增加的字符串类型:中新增加的字符串类型:ansistring;ansistring;默认长度可达默认长度可达2562562 2 -1=65535 -1=65535Var St:ansistring;Var St:ansistring;二、字符串二、字符串字符与字符串操作操作类型类型作用作用返回值返回值例子例子length(s)函数函数求字符串求字符串s的长度的长度整型整型s:=123456789;l:

7、=length(s);l的值为的值为9Copy(s,w,k)函数函数复制复制s中从中从w开始的开始的k位位字符串字符串s:=123456789;s1:=copy(s,3,5);s1的值是的值是34567Pos(c,S)函数函数求字符求字符(串串)c在串在串s中的位中的位置置整型整型S:=126.5;i:=Pos(6,S);i的值为的值为3+运算符运算符 将两个字符串连接起来将两个字符串连接起来s1:=1234;s2:=5678;s:=s1+s2;12345678val(s,k,code)过程过程将字符串将字符串s转为数值,存转为数值,存在在k中;中;code是错误代码是错误代码vars:str

8、ing;k,code:integer;s:=1234;val(s,k,code);write(k);k=1234str(i,s)过程过程将数值将数值i转为字符串转为字符串si:=1234;str(i,s);write(s);s=1234Delete(s,w,k)过程过程在在s中删除从第中删除从第w位开始位开始的的k个字符个字符s:=HonestAbeLincoln;Delete(s,8,4);Writeln(s);HonestLincolnInsert(s1,S,w)过程过程将将s1插到插到s中第中第w位位S:=HonestLincoln;Insert(Abe,S,8);HonestAbeLi

9、ncoln字符串的有关操作字符串的有关操作字符与字符串字符串使用中的有关说明和注意事项字符串使用中的有关说明和注意事项: :1、字符串的输入和输出、字符串的输入和输出:输入输入:字符串是以回车作为的结束标志字符串是以回车作为的结束标志.所以输入必须所以输入必须readln(s);每个;每个readln语语句只能读入一个字符串。不能句只能读入一个字符串。不能readln(s1,s2);输出输出:writeln(s);2、字符串可以和数组一样操作:、字符串可以和数组一样操作:a:=nabcdeg;则:则:a1:=n;a3:=b;输出:输出:writeln(a);或:或:fori:=1tolengt

10、h(a)dowrite(ai);3、从键盘只能接受、从键盘只能接受127个字符个字符;一般都是文件输入。一般都是文件输入。4、严格区分数字字符、数字字符串与数值的区别,但可以相互转化。、严格区分数字字符、数字字符串与数值的区别,但可以相互转化。4413261326如:如:vara:char;i:integer;a:=4;i:=ord(a)-48;writeln(i);i=4字符与字符串5、字符串大小的比较。、字符串大小的比较。123=12312345123251234512344561234566、数字串转化为数值型、数字串转化为数值型两种方法:两种方法:一、过程一、过程val二、直接转化二、

11、直接转化字符与字符串1、输入一个正整数、输入一个正整数n(10250),求它的各位数字之和求它的各位数字之和S。var n:string; s,k,i:integer;begin readln(n); k:=length(n); s:=0; for i:=1 to k do s:=s+ord(ni)-48; writeln(s);end.字符串应用举例:字符串应用举例:字符与字符串2、编写一个程序,统计从键盘输入的、编写一个程序,统计从键盘输入的n(100)个英个英文单词中以文单词中以c开头的单词开头的单词,并输出个数。并输出个数。样例:样例:输入:输入:4ancatbeeCow输出:输出:c

12、atCow2字符与字符串vara:array1.100ofstring;记录输入的单词记录输入的单词n,i,s:integer;beginreadln(n);输入单词个数输入单词个数fori:=1tondo输入单词输入单词readln(ai);s:=0;记录单词中一记录单词中一c开头的数目开头的数目fori:=1tondoif(ai,1=c)or(ai,1=C)thenbegins:=s+1;累加累加writeln(ai);输出以输出以c开头的单词开头的单词end;writeln(s);end.字符与字符串3、编程验证一个数是不是是回文数(、编程验证一个数是不是是回文数(10250)(一个数的

13、第一位和倒数第一位相同,第二位和倒数第二位相(一个数的第一位和倒数第一位相同,第二位和倒数第二位相同同如:如:13531,3443)。)。样例:样例:输入:输入:1234564354565输出:输出:no字符与字符串vara:string;n,i,len:integer;yn:boolean;beginreadln(a);len:=length(a);n:=lendiv2;yn:=true;fori:=1tondoifaialen+1-ithenbeginyn:=false;break;end;ifynthenwriteln(yes)elsewriteln(no);end.方方法法一一字符与字

14、符串vara:string;i,j,k:integer;beginreadln(a);k:=length(a);i:=1;j:=k;while(ai=aj)and(i=jthenwriteln(yes)elsewriteln(no);end.方方法法二二字符与字符串4、完成计算器功能:完成、完成计算器功能:完成30000以内的正整数加法运算。以内的正整数加法运算。样例样例:输入输入:130+100输出输出:230算法:算法:1)找到)找到+的位置的位置k。2)将运算符前的字符转化为数值)将运算符前的字符转化为数值a,运算,运算符后的字符串转化为符后的字符串转化为b。3)求)求a+b的值。的值。

15、字符与字符串vara,b,k,c:integer;ab:longint;s:string;beginreadln(s);k:=pos(+,s);val(copy(s,1,k-1),a,c);val(copy(s,k+1,length(s)-k),b,c);ab:=a+b;writeln(ab);end.过程:过程:val(s,a,c)中,中,c只能是整型数,如果只能是整型数,如果转化成功转化成功:c=0。a可以是实数也可以是整数可以是实数也可以是整数.Val(12.6,a,c);a:=12.6方方法法一一字符与字符串vara,b,k,c,n,i:integer;ab:longint;s:str

16、ing;beginreadln(s);k:=pos(+,s);n:=length(s);a:=0;fori:=1tok-1doa:=a*10+ord(si)-48;b:=0;fori:=k+1tondob:=b*10+ord(si)-48;ab:=a+b;writeln(ab);end.方方法法二二字符与字符串5、编程完成、编程完成30000以内的正整数的以内的正整数的+、-、*、/一种运算,只一种运算,只含一个运算符号。含一个运算符号。样例样例:输入输入:130*100输出输出:13000字符与字符串vara,b,k,c,len:integer;s:string;op:char;beginr

17、eadln(s);len:=length(s);fork:=1tolendoifnot(sk=0)thenbreak;op:=sk;val(copy(s,1,k-1),a,c);val(copy(s,k+1,length(s)-k),b,c);caseopof+:writeln(a+b);-:writeln(a-b);*:writeln(a*b);/:ifb=0thenwriteln(noanswer)elsewriteln(a/b:0:2);end;end.字符与字符串6 6、删数问题、删数问题 键盘输入一个正整数,去掉其中任意个数字后剩下的键盘输入一个正整数,去掉其中任意个数字后剩下的数字

18、按原左右次序将组成一个新的正整数。编程对给定的和数字按原左右次序将组成一个新的正整数。编程对给定的和,寻找一种方案使得剩下的数字组成的新数最小。(不超,寻找一种方案使得剩下的数字组成的新数最小。(不超过位)过位)输入:两行,第一行:正整数输入:两行,第一行:正整数n n,第二行:正整数,第二行:正整数S S。输出:输出:n n去掉的去掉的s s个数字后组成的新的最小的正整数个数字后组成的新的最小的正整数m m。样例:样例:输入:输入:123006123006 2 2输出:输出:10061006字符与字符串4287600054672397104524每一次删除的一个数字都每一次删除的一个数字都是

19、从首位开始的最长连续是从首位开始的最长连续上升序列的最末位数字。上升序列的最末位数字。字符与字符串varn:string;s,i:integer;beginreadln(n);输入数字输入数字read(s);输入删除的数字个数输入删除的数字个数whiles0dobegini:=1;while(ilength(n)and(ni1)and(n1=0)dodelete(n,1,1);删除处理后开头的删除处理后开头的0,并保证,并保证n不为空不为空writeln(n);end.字符与字符串练习一练习一编成实现:同时含有多个编成实现:同时含有多个+、-运算符的表达式求值。运算符的表达式求值。如:如:输入

20、:输入:45+5-4+10输出:输出:56字符与字符串练习二:矩形覆盖面积练习二:矩形覆盖面积问题描述:问题描述:在平面坐标系内有在平面坐标系内有n个矩形,求这个矩形,求这n个矩形覆盖的面积(重叠部分不能重复计算)。个矩形覆盖的面积(重叠部分不能重复计算)。输入:输入:第一行:第一行:n(=100),矩形的个数。矩形的个数。以下以下n行,每行行,每行4个数:个数:x1,y1,x2,y2。表。表示每个矩形的左下角定点和右上角定点示每个矩形的左下角定点和右上角定点的坐标。范围的坐标。范围0,100。输出:输出:N个矩形的覆盖面积。个矩形的覆盖面积。样例输入;样例输入;3215443754699样例输出:样例输出:29字符与字符串

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号