版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5讲 字符与字符串,字符型用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);
2、 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:array1.26 o
3、f 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(ch=a)and(ch0 then writeln(chr(i), ,ai); e
4、nd.,算法二:,算法三:,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.,字符串用于存放批量字符的一串字符。 Var:a:string; 或Var:a:stringn; A:=hello 其中正整数n(1=n=255)表示构成字符串的字符最多个数。 若字符串说明中没有指定长度,缺省值为255。 Freepascal
5、中新增加的字符串类型: ansistring;默认长度可达216 -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、从键盘只能接受12
6、7个字符;一般都是文件输入。 4、严格区分数字字符、数字字符串与数值的区别,但可以相互转化。 4 4 1326 1326 如: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); s:=0
7、; 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: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
8、) or (ai,1=C) then begin s:=s+1; 累加 writeln(ai); 输出以c开头的单词 end; writeln(s); end.,成绩排名 【问题描述:】 根据期末考试的成绩单信息,把所有的学生按总分从高到低的顺序输出。 【输入:】 第一行:学生的个数n(n=1000)。 以下n行:每行包含一个学生的信息,依次是:学号(1.n)、姓名、语文成绩、数学成绩。他们中间有且仅有一个空格隔开,输入信息中没有多余的空格。姓名全是字母,长度不大于20,各科成绩不超过100。 【输出:】 N行,每行包含一个学生的信息:学号、姓名、总分。中间用一个空格隔开,不能有多余的空格。总
9、分相同的学生,学号小的在前。,【样例输入:】 4 3 Tom 90 80 1 Jack 85 85 4 Rose 90 90 2 Mark 70 80,【样例输出:】 4 Rose 180 1 Jack 170 3 Tom 170 2 Mark 150,分 析,3、信息的保存: num:array1.1000 of integer; name:array1.1000 of string; sum:array1.1000 of integer;,1、每一行是一个同学的信息:数字和字符串。 只能以字符串方式读入。,2、怎样把一个同学的信息分离: 3 Tom 90 80,4、排序: 第一关键字:su
10、m 第二关键字:num,readln(s); m:=length(s); k:=0; for j:=1 to m do if sj= then begin inc(k); pk:=j; p1第一个空格的位置, end; val(copy(s,1,p1-1),numi,c); namei:=copy(s,p1+1,p2-p1-1); val(copy(s,p2+1,p3-p2-1), x, c); val(copy(s,p3+1,m-p3), y, c); sumi:=x+y;,信息分离1: 123 Tom 90 80(第i个人的信息),readln(s); m:=length(s); k1:=
11、pos( ,s); k2:=k1+pos( ,copy(s,k1+1,m-k1); k3:=k2+pos( ,copy(s,k2+1,m-k2); val(copy(s,1,k1-1), numi,c); namei:=copy(s,k1+1,k2-k1-1); val(copy(s,k2+1,k3-k2-1),x,c); val(copy(s,k3+1,m-k3),y,c); sumi:=x+y;,信息分离2: 3 Tom 90 80,begin readln(n); for i:=1 to n do begin readln(s); m:=length(s); k:=0; for j:=1
12、 to m do if sj= then begin inc(k); pk:=j; end; val(copy(s,1,p1-1),numi,c); namei:=copy(s,p1+1,p2-p1-1); val(copy(s,p2+1,p3-p2-1),x,c); val(copy(s,p3+1,m-p3),y,c); sumi:=x+y; end;,var num:array1.1000 of integer; name:array1.1000 of string; sum:array1.1000 of integer; n,i,j:integer; s:string; k,x,y,c:integer;,常量的定义: Const maxn=1000;,for i:=1 to n-1 do for j:=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 21714.4-2026雷电防护第4部分:建筑物内电气和电子系统
- GB/T 48028-2026输液、输血器具进气器件气溶胶细菌截留试验方法
- 2025-2026年浙江省部编版小学语文四年级下册第10单元说明文阅读理解习题
- 2026年广东省部编版小学三年级语文下册第6单元课后练习题
- 2025-2026年七年级科学上册第6单元实验操作测试卷
- 2025-2026年浙江省人教版二年级英语下册第2单元阅读理解测试卷
- 2026年人教版小学英语三年级上册第5单元同步练习题
- 2025-2026年考研心理学发展与教育心理学专项题库
- 2025-2026年四川省人教版四年级英语下册第5单元课后练习题
- 2025-2026年浙江省人教版七年级数学几何初步知识巩固习题
- 2026中国疫苗市场消费需求与增长潜力研究报告
- 2025年人工智能与伦理问题考试题及答案
- 2026年四川省泸州市中考物理真题及答案解析
- 小学科学新教科版六年级上册第三单元 地球的运动教案(2026秋)
- GB/T 13961-2026灯具用电源导轨系统
- 2026年新教材八年级上册历史全册必背知识点考点提纲
- 锅炉安装工程监理实施细则
- 大连市甘井子西侧海岸生态保护和修复工程环境影响报告表
- 川教版四年级上册《生命.生态.安全》全册教案(及计划)
- 初中语文八年级下册钢铁是怎样炼成的课件
- YY/T 1833.3-2022人工智能医疗器械质量要求和评价第3部分:数据标注通用要求
评论
0/150
提交评论