当前位置:首页 >> 学科竞赛 >>

08第八课 字符串


第十课 字符串类型

引入:字符类型
? ?

Var 字符变量名:char; 字符类型是一个有序类型,字符的大小顺序按ASCII码的 大小决定。相关的函数有succ、pred、ord、chr等。

VAR A:CHAR; Ord:求字符的ASCII值 BEGIN READLN(A); Chr:求数值对应的字

符 WRITELN('A:',A); WRITELN('SUCC(A):',SUCC(A)); WRITELN('PRED(A):',PRED(A)); WRITELN('ORD(A):',ORD(A)); WRITELN('CHR(ORD(A)):',CHR(ORD(A))); END.

字符串
?

?

字符串用于存放整批的字符数据。通常编程中使用 字符串存放字符化了的数字数据。如高精度运算时 存放操作数和运算结果。字符串可以看作是特殊的 字符串数组来处理。 字符串是由字符组成的有穷序列,字符串类型定义: type 字符串类型标识符=string[n]; var 字符串变量:字符串类型标识符; 其中:n是定义的字符串长度,必须是0~255之间 的自然整数,第0号单元中存放串的实际长度,程 序运行时由系统自动提供,第1~n号单元中存放串 的字符,若将string[n]写成string,则默认n值为255。

变量说明
?

例如:type

man=string[8]; line=string; var name:man; screenline:line;

?

另一种字符类型的定义方式为把类型说明的变量定义 合并在一起。 例如:VAR name:string[8]; screenline:string;

字符串的运算
?

?

+:连接运算符 例如:‘Turbo ’+‘PASCAL’的结果是 ‘Turbo PASCAL’ 若连接的结果字符串长度超过255,则被截成 255个字符;若连接后的字符串存放在定义的字 符串变量中,当其长度超过定义的字符串长度 时,超过部份字符串被截断。 var str1,str2,str3:string[8]; begin str1:='Turbo '; str2:='PASCAL'; str3:=str1+str2; end. 则str3的值为:'Turbo PA'

关系运算符
?

=、<>、<、<=、>、>= 两个字符串的比较规则为,从左到右 按照ASCⅡ码值逐个比较,遇到ASCⅡ 码不等时,规定ASCⅡ码值大的字符所在 的字符串为大。 例如:'AB'<'AC' '12'<'2' 'PASCAL'<'Pascal'

对给定的10个国家名,按其字母的顺序输出
?

var i,j:integer; t:string[20]; name:array[1..10] of string[20]; begin for i:=1 to 10 do readln(name[i]); for i:=1 to 9 do begin for j:=i+1 to 10 do if name[i]>name[j] then begin t:=name[i]; name[i]:=name[j]; name[j]:=t; end; end; for i:=1 to 10 do writeln(name[i]); end.

字符串的函数和过程
concat(ST1,...,STN)将N个字符串连接起来 效于ST1+...+ST2,是函数。 等

例:s1的值为‘I am’, s2的值为‘student’, 则concat(s1,’a’,s2)就返回 ‘I am a student’

字符串的函数和过程
copy(S,M,N)取S中第M个字符开始的N个字符 若M大于S的长度,则返回空串;否则,若M+N大 于s的长度,则截断,是函数。 例:s的值为‘ABCDEFG’,则
copy(s,3,2)=’CD’

字符串的函数和过程
length(S) :求s的动态的长度,返回值为整数, 是函数。
例:s的值为‘pascal compiler’,则 length(s)=15

字符串的函数和过程
pos(SUB,S) :在S中找子串SUB,返回值为SUB在S 中的位置,若无匹配的串就返回值0,是函数。
例:s的值为‘see you tomorrow’,则 pos(’you’,s)=5

字符串的函数和过程
insert(SOUR,S,M) 在S的第M个字符位置处插入 子串SOUR,若返回串超过255,则截断,是过 程。
例:s=’ABCDEF’,则insert(’XX’,s,3)之后 s=’ABXXCDEF’

字符串的函数和过程
delete(S,M,N) 删除S中第M个字符开始的N个字 符串,若M大于S的长度,则不删除;否则,若 M+N大于S的长度,则删除到结尾,是过程。 例:s=’ABCDEF’,执行delete(s,2,3)则 s=’AEF’

字符串的函数和过程
str(X[:W[:D]],S) 将整数或实数X转换成字符 串S,W和D是整型表达式,意义同带字宽的 write语句,是过程。
例:i=1234,则str(I:5,s)之后 s=’ 1234’

字符串的函数和过程
val(S,X,CODE) 将字符串S转换成整数或实数X,若 S中有非法字符,则CODE存放非法字符在S中的位 置;否则,CODE为零,CODE为整型,是过程。
例:s=’123’,则val(s,i,code)之后 i=123,code=0 s=’12x’,则val(s,i,code)之后 I值无定义,code=3

字符串的函数和过程
fillchar(S,N,CH)给S填充N个相同的CH,用于初 始化数组或字符串,N常用SIZEOF(S)代替,是 过程。
例:s:string[5],则fillchar(s,sizeof(s),’t’)之后 s=’ttttt’

对输入的一句子实现查找且置换的功能(找到 某个子串并换成另一子串)。
?

var s1,s,o:string; i:integer; begin write('The text:'); readln(s1); write('Find:');readln(s); write('Replace:');readln(o); i:=pos(s,s1); while i<>0 do begin delete(s1,i,length(s)); insert(o,s1,i); i:=pos(s,s1); end; writeln(s1); readln; end.

练习
?

?

1、读入一串字符,以句号结束,然后让其倒 序输出。 如输入:I am a student. 输出:tneduts a ma I 2、读入一串数字,以点号结束,请统计其中 ‘0’到‘9’的各个数字的个数。 如输入:91254782354987012345978. 输出:0:1 1:2 2:3 3:2 4:3 5:3 7:3 8:3 9:3


相关文章:
08第八课《使人和睦》
08第八课《使人和睦》_初中作文_初中教育_教育专区。第八课 使人和睦─效法耶稣的榜样经文:马太福音(五 9) “使人和睦的人有福了,因为他们必称为神的儿子。...
08.第八课 塑造良好性格
初中一年级《思想政治》 第八课 塑造良好性格 一、教法建议 【抛砖引玉】 本课有一个重要的基本概念:性格;一个重要的基本观点:“塑造良好 的性格必须扬长避短...
10第十课 字符与字符串处理
08第八课 一维数组 09第九课 多维数组 11第十一课 枚举、子界、集... ...分析:程序中,我们利用了字符类型是顺序类型这一特性,直接将字符类型变量作为循环...
第八讲 字符、字符串的输入与输出
第八讲 字符、字符串的输入与输出_其它课程_小学教育_教育专区。小学生电脑学习编程讲义8 1 第八讲 字符、字符串的输入与输出 一:字符的输入与输出函数: 1:...
生活与哲学电子课本08第八课
生活与哲学电子课本08第八课_其它_总结/汇报_实用文档。人教版政治电子课本 生活与哲学电子课本 第八课 唯物辩证法的发展观唯物辩证法既是关于世界普遍联系的科学,...
08.第八课 自觉投身社会实践
08.第八课 自觉投身社会实践 澳中政治测试题澳中政治测试题隐藏>> 第八课 自觉投身社会实践 一、教法建议 抛砖引玉 本课是全书内容的总结,主要是围绕实践概念展...
第八课八煞黄泉断语
第八课八煞黄泉断语_文学研究_人文社科_专业资料。状元地师第八课 学透八煞...文档贡献者 sfguoo 贡献于2016-08-26 1/2 相关文档推荐 龙上八煞 2页 1...
08 第八课 优先次序与决策
08 第八课 优先次序与决策 领袖训练初级课程领袖训练初级课程隐藏>> 第八课 优先次序与决策领袖训练初级课程上一课我们提到正确的优先次序对领导的重要。最主要是按...
08第八课 与对数函数有关的奇偶性和单调性
08第八课 与对数函数有关的奇偶性和单调性_高一数学_数学_高中教育_教育专区。必修 1 课时 8 班级: 姓名: 2.2 对数函数 与对数函数有关的奇偶性及单调性学...
课时八设置字符格式
课时八教学目标 学会设置文字的格式来美化文本 教学重点 1、设置字体 2、设置字号 3、设置字形 4、设置字符格式 教学难点 设置文字的特殊格式 教学方法 讲授、演示...
更多相关标签:
黄简讲书法三级课程08 | 警视厅印尼炒饭课08 | 金融理论前沿课题08 | 幸福课08中英文字幕 | 炫课2.1.08 | 第08课 府罗将相 | 八进制转换字符串在线 | 八进制字符串 |