操作结果:用S返回S与T连接而成的新串。 Index(S, T, pos)
初始条件:串S、T存在,0≤pos≤S.length-1。
操作结果:若主串S中存在与串T相同的串则返回从下标pos开始的第一个出现的位置,否则返回-1。 show(S)
初始条件:串S存在。 操作结果:显示串S。 } ADT String
七、源程序(格式调整,添加注释)
#include<stdio.h> #include<string.h>
#define MaxStrSize 256 typedef struct {
char ch[MaxStrSize]; int length;
} SString;//定义顺序串类型 //pos为下标
//实现串的赋值、比较、连接、插入和删除等操作,并在此基础上完成串的模式匹配
void InitString(SString *s,char a[]) {int i,j;
for(j=0;a[j]!='\0'; j++); for(i=0;i<j;i++) s->ch[i]=a[i];
s->length=strlen(a); }
//串赋值
int StrLength(SString s) {return s.length;} //求串长
int StrCompare(SString s,SString t) { int i;
for (i=0; i<s.length && i<t.length; i++)
if (s.ch[i]!=t.ch[i]) return s.ch[i]-t.ch[i]; return s.length-t.length; } //串比较
void SubString(SString *sub,SString S,int pos,int len) { int i;
for(i=0;i<len;i++)
sub->ch[i]=S.ch[pos+i];