《数据结构C语言版串的定长顺序存储表示和实现》由会员分享,可在线阅读,更多相关《数据结构C语言版串的定长顺序存储表示和实现(6页珍藏版)》请在人人文库网上搜索。
1、可编辑#include#include#include#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define OVERFLOW -2#define MAXSTRLEN 255typedef int ElemType;typedef int Status;typedef unsigned char SStringMAXSTRLEN+1;/串赋值操作Status StrAssign(SString T,char chars)/ 生成一个其值等于chars的串Tint i;if(strlen(chars)MAXSTRLEN)re。
2、turn ERROR;T0=strlen(chars);for(i=0;iS0|lenS0-pos+1)return ERROR;for(i=1;iT0)return i-T0;/匹配成功return 0; /匹配失败/Index/串插入操作Status StrInsert(SString S,int pos,SString T)/ 初始条件: 串S和T存在,1posStrLength(S)+1/ 操作结果: 在串S的第pos个字符之前插入串T。完全插入返回TRUE,部分插入返回FALSEint i;if(posS0+1)return ERROR;if(S0+T0=pos;i-)Si+T0=S。
3、i;for(i=pos;i=pos;i+)Si=Si-T0;for(i=pos;iS0-len+1|len0)printf(S1S2n);else if(StrCompare(S1,S2)0)printf(S1S2n);elseprintf(S1=S2n);printf(n连接串S1,S2得串S3:);if(Concat(S3,S1,S2)=1)StrPrint(S3);elseprintf(串连接失败!);printf(串S3的长度为%d:n,StrLength(S3);printf(n用Sub返回串S3中第pos个字符起长度为len的字符:n);printf(输入pos,len的值:n);。
4、scanf(%d%d,&pos,&len);if(SubString(Sub,S3,pos,len)=1)printf(输出串Sub:);StrPrint(Sub);elseprintf(序号不合法,取子串失败!n);printf(n求串Sub在串S3中的位置:n);if(Index(S3,Sub,pos)printf(pos值为%dn,pos);elseprintf(pos值不合法!n);printf(n在串S1的第pos位置插入串S2n);printf(输入pos的值:n);scanf(%d,&pos);if(StrInsert(S1,pos,S2)=1)printf(输出串S1:);StrPrint(S1);elseprintf(插入失败!n);printf(n从串S1中删除第pos位置起长度为len的字符:n);printf(输入pos,len的值:n);scanf(%d%d,&pos,&len);if(StrDelete(S1,pos,len)printf(输出串S1:);StrPrint(S1);elseprintf(删除失败!n);精品文档。