第五讲字符与字符串.ppt

上传人:sccc 文档编号:5991958 上传时间:2023-09-12 格式:PPT 页数:29 大小:107.54KB
返回 下载 相关 举报
第五讲字符与字符串.ppt_第1页
第1页 / 共29页
第五讲字符与字符串.ppt_第2页
第2页 / 共29页
第五讲字符与字符串.ppt_第3页
第3页 / 共29页
第五讲字符与字符串.ppt_第4页
第4页 / 共29页
第五讲字符与字符串.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《第五讲字符与字符串.ppt》由会员分享,可在线阅读,更多相关《第五讲字符与字符串.ppt(29页珍藏版)》请在三一办公上搜索。

1、第五讲 字符与字符串,字符型用char作为标识符。字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。,Var a:char;a:=b;a:=B;a:=2;,一、字符型,知识点:1、字符的ASCII码(序号):一一对应关系,、函数:ord(x)chr(x))、ord(x):返回字符x的ASCII码。i:=ord(A);j:=ord(B);n:=ord(1);write(I,j,n);65 66 49)、chr(x):返回ASCII码为x的字符。var a:char;a:=chr(98);writeln(a);write(chr(97

2、);,3、字符大小的比较(相应字符ASCII码大小的比较):ASCII码大的字符大。ba 51 aA,4、数字字符转换为相应的数字的方法。var x:char;a:integer;x:=3;a:=ord(x)-48;,练习题目:从键盘上输入一串字符(可能含数字、小写字母),以#作为输入结束标志。编程完成:统计输入字符中每个小写字母出现的次数(没有出现的不输出)。样例:输入:2bcdaab33wycc#输出:a 2b 2c 3d 1w 1y 1,算法一:,var ch:char;n,i:integer;a:array1.26 of integer;统计字母出现的次数begin for i:=1

3、to 26 do ai:=0;read(ch);while ch#do begin if(ch=a)and(ch0 then writeln(chr(i+96),ai);end.,var ch:char;n,i:integer;a:array97.122 of integer;统计字母出现的次数begin for i:=97 to 122 do ai:=0;read(ch);while ch#do begin if(ch=a)and(ch0 then writeln(chr(i),ai);end.,算法二:,算法三:,var ch:char;n,i:integer;a:arraya.z of

4、integer;统计字母出现的次数begin for ch:=a to z do ach:=0;read(ch);while ch#do begin if(ch=a)and(ch0 then writeln(ch,ach);end.,字符串用于存放批量字符的一串字符。Var:a:string;或Var:a:stringn;A:=hello其中正整数n(0=n=255)表示构成字符串的字符最多个数。若字符串说明中没有指定长度,缺省值为255。Freepascal中新增加的字符串类型:ansistring;默认长度可达2562-1=65535Var St:ansistring;,二、字符串,字符串

5、的有关操作,字符串使用中的有关说明和注意事项:1、字符串的输入和输出:输入:字符串是以回车作为的结束标志.所以输入必须readln(s);每个readln语句只能读入一个字符串。不能readln(s1,s2);输出:writeln(s);2、字符串可以和数组一样操作:a:=nabcdeg;则:a1:=n;a3:=b;输出:writeln(a);或:for i:=1 to length(a)do write(ai);3、从键盘只能接受127个字符;一般都是文件输入。4、严格区分数字字符、数字字符串与数值的区别,但可以相互转化。44 13261326 如:var a:char;i:integer;

6、a:=4;i:=ord(a)-48;writeln(i);i=4,5、字符串大小的比较。123=123 1234512325 123451234 456123456,6、数字串转化为数值型 两种方法:一、过程 val 二、直接转化,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开头的单

7、词,并输出个数。样例:输入:4ancatbeeCow输出:catCow2,var a:array1.100 of string;记录输入的单词 n,i,s:integer;begin readln(n);输入单词个数 for i:=1 to n do 输入单词 readln(ai);s:=0;记录单词中一c开头的数目 for i:=1 to n do if(ai,1=c)or(ai,1=C)then begin s:=s+1;累加 writeln(ai);输出以c开头的单词 end;writeln(s);end.,3、编程验证一个数是不是是回文数(10250)(一个数的第一位和倒数第一位相同,

8、第二位和倒数第二位相同如:13531,3443)。,样例:输入:123456435400565654656565输出:no,var a:string;n,i,len:integer;yn:boolean;begin readln(a);len:=length(a);n:=len div 2;yn:=true;for i:=1 to n do if aialen+1-i then begin yn:=false;break;end;if yn then writeln(yes)else writeln(no);end.,方法一,var a:string;i,j,k:integer;begin r

9、eadln(a);k:=length(a);i:=1;j:=k;while(ai=aj)and(i=j then writeln(yes)else writeln(no);end.,方法二,4、完成计算器功能:完成30000以内的正整数加法运算。样例:输入:130+100输出:230,算法:1)找到+的位置k。2)将运算符前的字符转化为数值a,运算符后的字符串转化为b。3)求a+b的值。,var a,b,k,c:integer;ab:longint;s:string;begin readln(s);k:=pos(+,s);val(copy(s,1,k-1),a,c);val(copy(s,k+

10、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,方法一,var a,b,k,c,n,i:integer;ab:longint;s:string;begin readln(s);k:=pos(+,s);n:=length(s);a:=0;for i:=1 to k-1 do a:=a*10+ord(si)-48;b:=0;for i:=k+1 to n do b:=b*10+ord(si)-48;ab:=a+b;wri

11、teln(ab);end.,方法二,5、编程完成30000以内的正整数的+、-、*、/一种运算,只含一个运算符号。样例:输入:130*100输出:13000,var a,b,k,c,len:integer;s:string;op:char;begin readln(s);len:=length(s);for k:=1 to len do if not(sk=0)then break;op:=sk;val(copy(s,1,k-1),a,c);val(copy(s,k+1,length(s)-k),b,c);case op of+:writeln(a+b);-:writeln(a-b);*:wr

12、iteln(a*b);/:if b=0 then writeln(no answer)else writeln(a/b:0:2);end;end.,6、删数问题 键盘输入一个正整数,去掉其中任意个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的和,寻找一种方案使得剩下的数字组成的新数最小。(不超过位)输入:两行,第一行:正整数n,第二行:正整数S。输出:n去掉的s个数字后组成的新的最小的正整数m。样例:输入:123006 2输出:1006,4287600054,6723971045,400028762,121457894,var n:string;s,i:integer;begi

13、n readln(n);输入数字 read(s);输入删除的数字个数 while s0 do begin i:=1;while(i1)and(n1=0)do delete(n,1,1);删除处理后开头的0,并保证n不为空 writeln(n);end.,练习一 编成实现:同时含有多个+、-运算符的表达式求值。如:输入:45+5-4+10输出:56,练习二:矩形覆盖面积,问题描述:在平面坐标系内有n个矩形,求这n个矩形覆盖的面积(重叠部分不能重复计算)。,输入:第一行:n(=100),矩形的个数。以下n行,每行4个数:x1,y1,x2,y2。表示每个矩形的左下角定点和右上角定点的坐标。范围0,100。输出:N个矩形的覆盖面积。样例输入;32 1 5 44 3 7 54 6 9 9样例输出:29,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号