版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 字符与字符串字符与字符串东城八小 李计绸字符型用字符型用char作为标识符。字符型必需用单引号括起来,作为标识符。字符型必需用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否那么就是字符串。引号中有一个字符,否那么就是字符串。Var a:char;a:=b;a:=B;a:=2;一、字符型一、字符型知识点:知识点:1、字符的、字符的ASCII码序号:一一对应关系码序号:一一对应关系字符字符0123456789ASCII48495051525354555657字符ABCZASCII65666790字符a
2、bczASCII 979899122、函数:、函数: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 aA4、数字字符转换为相应的数字的方法。、数字
3、字符转换为相应的数字的方法。 var x:char; a:integer; x:=3; a:=ord(x)-48; 练习标题:练习标题: 从键盘上输入一串字符能够含数字、小写字母,以从键盘上输入一串字符能够含数字、小写字母,以# #作为输入作为输入终了标志。终了标志。编程完成:编程完成:统计输入字符中每个小写字母出现的次数没有出现的不输出。统计输入字符中每个小写字母出现的次数没有出现的不输出。样例:样例:输入:输入:2bcdaab33wycc#2bcdaab33wycc#输出:输出:a 2a 2b 2b 2c 3c 3d 1d 1w 1w 1y 1 y 1 算算法法一一:var ch:char
4、; 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 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
5、(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)and(ch0 then writeln(ch, ,ach);end.字符串用于存放批量字符的一串字符。字符串用于存放批量字符的一串字符。 VarVar:a a:string;string;或或VarVar:a
6、a:stringn;stringn;A:=helloA:=hello其中正整数其中正整数n(1=n=255)n(1=n=255)表示构成字符串的字符最多个数。表示构成字符串的字符最多个数。假设字符串阐明中没有指定长度,缺省值为假设字符串阐明中没有指定长度,缺省值为255255。FreepascalFreepascal中新添加的字符串类型:中新添加的字符串类型:ansistring;ansistring;默许长度可达默许长度可达2562 -1=655352562 -1=65535Var St:ansistring;Var St:ansistring;二、字符串二、字符串操作操作 类型类型 作用作
7、用 返回值返回值 例子例子 length(s)函数函数 求字符串求字符串s的长度的长度整型整型s:=123456789;l:=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;
8、 12345678val(s,k,code)过程过程 将字符串将字符串s转为数值,存转为数值,存在在k中;中;code是错误代码是错误代码 var s:string;k,code:integer;s:=1234;val(s,k,code);write(k); k=1234str(i,s)过程过程 将数值将数值i转为字符串转为字符串s i:=1234;str(i,s); write(s); s=1234delete(s,w,k)过程过程 在在s中删除从第中删除从第w位开始位开始的的k个字符个字符 s := Honest Abe Lincoln;Delete(s,8,4);Writeln(s);
9、Honest Lincoln insert(s1, S, w)过程过程 将将s1插到插到s中第中第w位位 S := Honest Lincoln;Insert(Abe , S, 8); Honest Abe Lincoln 字符串的有关操作字符串的有关操作字符串运用中的有关阐明和本卷须知字符串运用中的有关阐明和本卷须知: :1 1、字符串的输入和输出、字符串的输入和输出: :输入输入: :字符串是以回车作为的终了标志字符串是以回车作为的终了标志. .所以输入必需所以输入必需readln(s)readln(s);每个每个readlnreadln语句只能读入一个字符串。不能语句只能读入一个字符串。
10、不能readln(s1,s2); readln(s1,s2); 输出输出:writeln(s); :writeln(s); 2 2、字符串可以和数组一样操作:、字符串可以和数组一样操作: a:=nabcdeg;a:=nabcdeg; 那么:那么:a1:=n;a3:=b;a1:=n;a3:=b; 输出:输出:writeln(a);writeln(a); 或:或:for i:=1 to length(a) do write(ai);for i:=1 to length(a) do write(ai);3 3、从键盘只能接受、从键盘只能接受127127个字符个字符; ;普通都是文件输入。普通都是文件
11、输入。4 4、严厉区分数字字符、数字字符串与数值的区别,但可以相互、严厉区分数字字符、数字字符串与数值的区别,但可以相互转化。转化。 44 1326132644 13261326 如:如:var a:char; i:integer;var a:char; i:integer; a:=4;i:=ord(a)-48; writeln(i); i=4 a:=4;i:=ord(a)-48; writeln(i); i=45、字符串大小的比较。、字符串大小的比较。 123=123 1234512325 123451234 4561234566、数字串转化为数值型、数字串转化为数值型 两种方法:两种方法:
12、 一、过程一、过程 val 二、直接转化二、直接转化1、输入一个正整数、输入一个正整数n10250,求它的各位数字之和求它的各位数字之和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开头的单词开头的单词,并输出个数。并输出个数。样例:样例:输入:输入:4ancatbeeCo
13、w输出:输出:catCow2var 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、编程验证一个数是不是是回文数、
14、编程验证一个数是不是是回文数10250一个数的第一位和倒数第一位一样,第二位和倒数第二位一一个数的第一位和倒数第一位一样,第二位和倒数第二位一样样如:如:31,3443。样例:样例:输入:输入:123456435400565654656565输出:输出:novar 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 t
15、hen 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算法:算法:1找到找到+的位置的位置k。2将运算符前的字符转化为数值将运算符前的字符转化
16、为数值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方法一方法一v
17、ar 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; writeln(ab);end.方法二方法二5、编程完成、编程完成30000以内的正整数的以内的正整数的+、-、*、/一种运算,只一种运算,只含一个运算符号。含一个运算符号。样例样例:输入输入:130*100输出输出:1300
18、0var 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); *:writeln(a*b); /:if b=0 then writeln(no answer) else writeln(a/b:0:2); end;end.6 6、删数问题、删数问题 键盘输入一个正整数,去掉其中恣意键盘输入一个正整数,去掉其中恣意个数字后剩下的数字按原左右次序将组成一个个数字后剩下的数字按原左右次序将组成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度版权购买合同:影视作品版权购买与授权
- 2024年度成建制劳务分包商的违约责任合同
- 2024年度不锈钢栏杆工程承包合同
- 2024年度农业企业社会责任履行与评估合同
- 2024年度智能制造生产线购销合同
- 比基尼泳装市场发展现状调查及供需格局分析预测报告
- 2024年度城中村改造拆除合同
- 2024年度企业并购重组顾问合同(标的:亿元并购咨询服务)
- 2024年度人力资源服务合同标的为人才招聘外包
- 2024年度版权许可合同:音乐作品《梦回2024》的线上线下播放权许可
- 掠入射法测量棱镜的折射率实验报告DOC
- RNA的生物合成课件
- 八年级英语家长会-课件
- (完整word)大学西门子plcs7-1200考试复习习题
- DB11-972-2013保险营业场所风险等级与安全防范要求
- 思想道德与法治课件:第六章 第四节 自觉尊法学法守法用法
- 期中表彰大会方案
- 2022年三临床路径及单病种档案盒
- 链工宝在线学习平台学员使用操作步聚
- 大洋环流重点
- 《有机合成》说播课课件(全国高中化学优质课大赛获奖案例)
评论
0/150
提交评论