串的存储结构
串的顺序存储
顺序表的定义
#define MAXLEN 255
typedef struct{
char ch[MAXLEN];
int length;
} SString;
另一种方案是,用第一个存储单元存放串的长度:优点:字符的位序和数组下标是一一对应的
这里采用的是:第一个存储单元的位置不用,另外用一个length变量存储长度
串的基本操作
1、清空,只要将length的值设为0就实现了清空
2、求子串的操作
bool SubString(SString &sub,SString s,int pos,int len){
if ((pos+len-1)>s.length) {
return false;
}
for (int i=pos; i<=pos+len-1; i++) {
sub.ch[i-pos+1]=s.ch[i];
}
sub.length=len;
return true;
}
3、比较操作,s>t返回值大于0 , < <0,相等,返回值等于0,如果扫描过的字符都相同,则长度更长的字符更大
int StrCompare(SString s,SString t){
for (int i=1; i<=s.length&&i<=t.length; i++) {
if (s.ch[i]!=t.c