《字符与字符串》ppt课件

上传人:xiao****1972 文档编号:72951028 上传时间:2019-01-24 格式:PPT 页数:28 大小:327.31KB
返回 下载 相关 举报
《字符与字符串》ppt课件_第1页
第1页 / 共28页
《字符与字符串》ppt课件_第2页
第2页 / 共28页
《字符与字符串》ppt课件_第3页
第3页 / 共28页
《字符与字符串》ppt课件_第4页
第4页 / 共28页
《字符与字符串》ppt课件_第5页
第5页 / 共28页
点击查看更多>>
资源描述

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

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); wri

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

3、ay126 of integer; 统计字母出现的次数 begin for i:=1 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:array97122 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), ,

4、ai); end.,算法二:,算法三:,var ch:char; n,i:integer; a:arrayaz of 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(1=n=255)表示构成字符串的字符最多个数。 若字符串说明中没有指定长度,缺省值为255。 Freep

5、ascal中新增加的字符串类型: ansistring;默认长度可达2562 -1=65535 Var St:ansistring;,二、字符串,字符串的有关操作,字符串使用中的有关说明和注意事项: 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、从键盘

6、只能接受127个字符;一般都是文件输入。 4、严格区分数字字符、数字字符串与数值的区别,但可以相互转化。 44 13261326 如:var a:char; i:integer; 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);

7、s:=0; for i:=1 to k do s:=s+ord(ni)-48; writeln(s); end.,字符串应用举例:,2、编写一个程序,统计从键盘输入的n(100)个英文单词中以c开头的单词,并输出个数。 样例: 输入: 4 an cat bee Cow 输出: cat Cow 2,var a:array1100 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,

8、1=c)or(ai,1=C) then begin s:=s+1; 累加 writeln(ai); 输出以c开头的单词 end; writeln(s); end.,3、编程验证一个数是不是是回文数(10250) (一个数的第一位和倒数第一位相同,第二位和倒数第二位相同如: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

9、 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 readln(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,算法:

10、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+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:i

11、nteger;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; writeln(ab); end.,方法二,5、编程完成30000以内的正整数的+、-、*、/一种运算,只含一个运算符号。 样例: 输入: 130*100 输出: 13000,var a,b,k,c,len:integer; s:string; op:ch

12、ar; 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); *:writeln(a*b); /:if b=0 then writeln(no answer) else writeln(a/b:0:2); end; end.,6、删数问题 键盘输入一个正整数,去掉其中任意个数字后剩

13、下的数字按原左右次序将组成一个新的正整数。编程对给定的和,寻找一种方案使得剩下的数字组成的新数最小。(不超过位) 输入:两行,第一行:正整数n,第二行:正整数S。 输出:n去掉的s个数字后组成的新的最小的正整数m。 样例: 输入:123006 2 输出:1006,428760005 4,672397104 5,40002876 2,12145789 4,var n:string; s,i:integer; begin 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,

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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