参考资料:《数据结构(C语言版)严蔚敏著》
版权说明:未经作者允许,禁止转载。如引用本文内容,需标明作者及出处。如本文侵犯了您的权益,请联系我删除并致歉。
文章说明:如文章中出现错误,请联系我更改。如您对文章的内容有任何疑问,也欢迎来与我讨论。
本文正在施工中...请稍等...
串的介绍
基本概念
1、串:串是由零个或多个字符组成的有限序列,一般记为s='a1a2...an'(n≥0),其中s是串的名字,用单引号括起来的字符序列是串的值,串中字符的数目n称为串的长度。长度为0的串称为空串。
2、子串、主串:串中任意个连续的字符组成的子序列称为该串的子串,相应地,该串称为主串。
3、空格串:由一个或多个空格组成的串称为空格串。(注意空格串与空串的区别)
4、串中的位置:字符在序列中的序号称为该字符在串中的位置;子串在主串中的位置以子串的第一个字符在主串中的位置来表示。
4、串上的相等关系:当且仅当两个串的值相等时,即两个串的长度相等,且各个对应位置的字符也相等,称这两个串是相等的。
抽象数据类型定义
ADT String{
数据对象:参考《数据结构(C语言描述)严蔚敏著》
数据关系:参考《数据结构(C语言描述)严蔚敏著》
基本操作:
StrAssign(&T, chars)
初始条件:chars是字符串常量。
操作结果:生成一个其值等于chars的串T。
StrCopy(&T, S)
初始条件:串S存在。
操作结果:由串S复制得串T。
StrEmpty(S)
初始条件:串S存在。
操作结果:若S为空串,则返回TRUE,否则返回FALSE。
StrCompare(S, T)
初始条件:串S和T存在。
操作结果:若S>T,则返回值>0;若S=T,则返回值=0;若S<T,则返回值<0。
StrLength(S)
初始条件:串S存在。
操作结果:返回S的元素个数,称为串的长度。
ClearString(&S)
初始条件:串S存在。
操作结果:将S清为空串。
Concat(&T, S1, S2)
初始条件:串S1和S2存在。
操作结果:用T返回由S1和S2联接而成的新串。
SubString(&Sub, S, pos, len)
初始条件:串S存在,1≤pos≤StrLength(S)且0≤len≤StrLength(S)-pos+1
操作结果:用Sub返回串S的第pos个字符起长度为len的子串。
Index(S, T, pos)
初始条件:串S和T存在,T是非空串,1≤pos≤StrLength(S)。
操作结果:若主串S中存在和串T值相同的子串,则返回它在主串S中第pos个字符之后第一次出现的位置;否则函数值为0。
Replace(&S, T, V)
初始条件:串S,T和V存在,T是非空串。
操作结果:用V替换主串S中出现的所有与T相等的不重叠的子串。
StrInsert(&S, pos, T)
初始条件:串S和T存在,1≤pos≤StrLength(S)+1。
操作结果:在串S的第pos个字符之前插入串T。
StrDelete(&S, pos, len)
初始条件:串S存在,1≤pos≤StrLength(S)-len+1。
操作结果:从串S中删除第pos个字符起长度为len的子串。
DestroyString(&S)
初始条件:串S存在。
操作结果:串S被销毁。
}