《字符与字符串》PPT课件



《《字符与字符串》PPT课件》由会员分享,可在线阅读,更多相关《《字符与字符串》PPT课件(28页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,字符与字符串,东城八小 李计绸,字符型用char作为标识符。字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。,Var a:char;,a:=b;,a:=B;,a:=2;,一、字符型,知识点:,1、字符的ASCII码(序号):一一对应关系,字符,0,1,2,3,4,5,6,7,8,9,ASCII,48,49,50,51,52,53,54,55,56,57,字符,A,B,C,Z,ASCII,65,66,67,90,字符,a,b,c,z,A
2、SCII,97,98,99,122,、函数: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);,3、字符大小的比较(相应字符ASCII码大小的比较):,ASCII码大的字符大。,ba 51 aA,4、数字字符转换为相应的数字的方法。,var x:char;,a:integer;,x:=3;,a:=ord(x)-48;,练习题目
3、:,从键盘上输入一串字符(可能含数字、小写字母),以#作为输入结束标志。,编程完成:,统计输入字符中每个小写字母出现的次数(没有出现的不输出)。,样例:,输入:,2bcdaab33wycc#,输出:,a 2,b 2,c 3,d 1,w 1,y 1,算法一:,var ch:char;,n,i:integer;,a:array1.26 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
4、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 integer;统计字母出现的次数,begin,for ch:=a to z do ach:=0;,read(ch);,while ch#do,begin,if(ch=a)
5、and(ch0 then writeln(ch,ach);,end.,字符串用于存放批量字符的一串字符。,Var:a:string;,或Var:a:stringn;,A:=hello,其中正整数n(1=n12325,123451234,456123456,6、数字串转化为数值型,两种方法:,一、过程 val,二、直接转化,1、输入一个正整数n(10,250,),求它的各位数字之和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;,writel
6、n(s);,end.,字符串应用举例:,2、编写一个程序,统计从键盘输入的n(100)个英文单词中以c开头的单词,并输出个数。,样例:,输入:,4,an,cat,bee,Cow,输出:,cat,Cow,2,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
7、);,输出以c开头的单词,end;,writeln(s);,end.,3、编程验证一个数是不是是回文数(10,250,)(一个数的第一位和倒数第一位相同,第二位和倒数第二位相同如:13531,3443)。,样例:,输入:,输出:,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(
8、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,算法:,1)找到+的位置k。,2)将运算符前的字符转化为数值a,运算符后的字符串转化为b。,3)求a+b的值。,var,a,b,k,c:integer;ab:long
9、int;,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:integer;ab:longint;,s:string;,begin,readln(s);,k:=pos(+,s);,n:=length(s);,a:=0;,
10、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:char;,begin,readln(s);,len:=length(s);,for k:=1 to len do,if not(sk=0)then break;,op
11、:=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、删数问题,键盘输入一个正整数,去掉其中任意个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的和,寻找一种方案使得剩下的数字组成的新数最小。(不超过位),输入:两行,第一行:正整数n,第二行:正整数S。,输
12、出: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(ilength(n)and(ni1)and(n1=0)do delete(n,1,1);删除处理后开头的0,并保证n不为空,writeln(n);,end.,练习一,编成实现:同时含有多个+、-运算符的表达式求值。,如:,输入:,45+5-4+10,输出:,56,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。