字符串讲义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符串
一、复习字符型:
1、类型:char(有序型)
2、定义:var a,b:char;
3、占用空间:每个变量占用1个字节。每个变量只能存放一个字符。
4、每个字符都有唯一对应的ASCII码。
0-9 A-Z a-z
48-57 65-90 97-120
5、相关函数:
(1)Chr(i) 求ASCII码为i的字符
(2)Ord(a) 求字符的ASCII玛
(3)Pred(a) 求字符的前趋字符
(4)Succ(a) 求字符的后继字符
二、字符串类型
1、类型名:sting(有序型)
2、定义:var s,st:string;
Var s:string[20];
3、占用空间:默认256字节,即最大串长256。
4、引用方法:
(1)整体引用:
Var s,s1:string;
Read(s); (整个输入行都将被作为一个串读入,包括空格)
Readln(s);
Write(s);
S1:=s;
S:=’abcdefg’;
(2)下标引用:
S:=’abcdefg’;
S[2]:=’B’;
Write(s); aBcdefg
Write(s[4]); d
S1[1]:=s[1];
S1[2]:=s[3];
Write(s1); ac
(注意:下标引用时,每个元素等同于一个字符型变量)
5、字符串运算:
a)布尔运算:比较字符串大小,按从前到后的顺序逐个比较字符串的
ASCII码,直到比出大小时停止。(与串长无关)
如:’a’>’bcdefg’, ‘abcdefg’>’abcdef’
b)加法运算(字符串连接):将+号后面的串连接在+号前面的
串的后面。(注意:不遵守加法交换率)
如:’abcd’+’efg’=’abcdefg’, ‘efg’+’abcd’=’efgabcd’
6、相关函数和过程:
1、测字符串长度(Length)函数:测字符串的字符个数。
Var s:string;
I:integer;
Begin
S:=’abcdefg’;
I:=length(s);
Write(i);
End. 输出结果:7
2、查找子串位置(pos)函数:找出子串在母串中出现的第一个字符位
置,如果出现多次,只找出第一次出现的位置。
Var s,s1,s2:string;
I,i1,i2:integer;
Ss:char;
Begin
S:=’abcdefg’;
S1:=’def’;
S2:=’1234’;
Ss:=’c’;
I:=pos(s1,s); i=4
I1:=pos(s2,s); i=0
I2:=pos(ss,s); i=3
End;
3、复制子串(copy)函数:复制母串中指定位置的子串。
Var s,s1:string;
Begin
S:=abcdefg’;
S1:=copy(s,3,3);
Write(s1);
End. 输出:cde
4、插入子串(insert)过程:
语法:insert(s1,s,n);将子串S1插入到串S的第N个位置
例如:
Var s,s1:string;
Begin
S:=’abefg’;
S1:=’cd’;
Insert(s1,s,3);
Write(s);
End. 输出:abcdefg
5、删除子串(delete)过程:
语法:delete(s,n,m);将串S的第N个字符开始的M个字符删除
例如:
Var s:string;
Begin
S:=’abcdefg’;
Delete(s,2,4);
Write(s);
End. 输出:afg
6、数转串(str)过程:
语法:str(I,s); 将数值变量I的值转换成字符串并保存在S中。
例如:
Var s,s1,s2:string;
I:integer;
M:real;
Begin
I:=1234;
M:=1.5;
Str(I,s);
Writeln(s);
Str(m,s1); 输出:1234
Writeln(s1); 输出:1.500000000000000E+000
Str(m:3:1,s2); 输出:1.5
Writeln(s2);
End.
7、串转数(val)过程:
语法:val(s,n,code); 将字符串S转换成数值并保存在变量n中。
Code是标志变量(整型),如果转换成功,code=0,否则,code
的值等于转换不成功的第一个字符所在位置。
例如:
Var s,s1,s2,:string;
I:code:integer;
M:real;
Begin
S:=’1234’;
S1:=’1234+5678’;
S2:=’12.34’;
Val(s,I,code);
Writeln(I); 输出:1234
Writeln(code); 输出:0
Val(s1,I,code);
Writeln(i); 输出:0
Writeln(code); 输出:5
Val(s2,m,code);
Writeln(m); 输出:1.234000000000000E+001
Writeln(code); 输出:0