1 / 19
文档名称:

数据结构04-串.ppt

格式:ppt   大小:367KB   页数:19页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构04-串.ppt

上传人:文库旗舰店 2018/7/2 文件大小:367 KB

下载得到文件列表

数据结构04-串.ppt

相关文档

文档介绍

文档介绍:第4章字符串/串(string)
数据结构
主讲教师:祝建华
1
串的定义与操作

(1)串:由零个或多个字符组成的有限序列。
n个字符C1,C2,...,Cn组成的串记作:
s='C1C2...Cn' n>=0
其中:s为串名, C1C2...Cn为串值 n为串长
例 PASCA语言:
s1='data1234' s2='123*abc'
C语言:
s1="data1234" s2="123*abc"
’A’为字符"A"为字符串
%c为字符格式%s为字符串格式
2
(2)空串:不含字符的串/长度为零的串。
PASCA语言: s=''
C语言: s=""
(3)空格串:仅含空格字符’’的串。
例 s1='' s2=''
s1=' ' s2=' ‘
(4)子串:串s中任意个连续的字符组成的子序列称为串s的子串。
主串---包含某个子串的串。
例 st="ABC123A123CD"
s1="ABC" s3="123A" s4="ABCA"
s2="ABC12" s5="ABCE" s6="321CBA"
3
、字符变量的定义与使用
例1 串变量
char st[]="abc\'*123";
gets(st); scanf("%s",st);
strcpy(st,"data");
puts(st); printf(“st=%s\n”,st);
例2 字符变量
char ch='A';
ch=’B’; ch=getchar();
scanf("%c",&ch); printf("ch=%c\n",ch);
4

(1)strcpy(t,s)---s的串值复制到t中。
执行:strcpy(t,"data"); 有:t="data“
(2)strlen(s)----求s的长度
strlen("data*123")=8 strlen("")=0
(3)strcat(s1,s2)----s2的值接到s1的后面。
设 s1="data" , s2="123"
执行:strcat(s1,s2);
有: s1="data123" , s2="123"
5
(4)strcmp(s1,s2)---比较s1和s2的大小
若s1<s2,返回负整数如:"ABC"<"abc"
若s1=s2,返回0如: 如:"abc"="abc"
若s1>s2,返回正整数如:"ABCD">"ABC“
(5) strstr(s1,s2)----若s2是s1的子串,则指向s2在s1中第1次出现时的第1个字符的位置;否则返回NULL。
设 s1="ABE123*DE123bcd"
s2="E123"
有 strstr(s1,s2)=3
s1="ABE123*DE123"
6
(6)Replace(s,t,v)----置换
用v代替主串s中出现的所有与t相等的不重叠的子串
设 s="abc123abc*ABC", t="abc", v="OK"
执行:Replace(s,t,v);
有: s="OK123OK*ABC", t=”abc”, v="OK"
设 A="abcaaaaaABC", B="aa", C="aaOK"
执行:Replace(A,B,C);
有: A="abcaaOKaaOKaABC", B="aa", C="aaOK“
(7) StrInsert(s,i,t)----将t插入s中第i个字符之前。
设 s="ABC123"
执行: StrInsert(s,4,"**");
有: s="ABC**123"
7
(8)用Replace(s,t,v)实现删除
设 s="ABC//123"
执行:Replace(s,"//","")
有: s="ABC123"
(9)用Replace(s,t,v)实现插入
设 s="ABC123"
执行:Replace(s,"123","**123")
有: s="ABC**123"
8
//
...
//
\0
3
2
1
C
B
A
//
...
//
3
2
1
C
B
A
6
串的存储表示和实现
串的定长顺序存储表示
给每个定义的串分配一个固定长度的存储区
#define MAXSTRLEN 255 //用户可在255以内定义最大长度
typedef unsigned char SString[MAXSTRLEN+1]; //0号单元存放
//串的长度
PASCAL: 下标为0的分量存放串的实际长度
C: 在串值后加串结束标记