串的基本操作
一、设计算法实现串的基本操作:
(1)实现串的连接操作;
(2)用串V替换串S中的子串T;
(3)删除串S中与串T相等的子串。
二、算法设计及程序源代码
- HString的定义:
#define MAXSTRLEN 100
typedef struct{
char ch[MAXSTRLEN];
int length;
} HString;
2.串连接算法:
//串S1和串S2连接成串S
HString Concat(char *S1,char *S2,int s1_len,int s2_len){
HString S;
S.length=s1_len+s2_len;
int a,b=0,i=0;
for(i;i<s1_len;i++,S1++) //将串S1赋值给串S
S.ch[i]=*S1;
for(a=S.length-s2_len;a<S.length;a++,S2++) //将串S2连接在串S1的后面
S.ch[a]=*S2;
cout<<"串S1和串S2连接成串S :";
for(b;b<S.length;b++) //输出连接后的串S
cout<<S.ch[b];
3.替换算法(串V替换串S中的子串T):
//用V串替换S串中的T串
int Replace(HString &S,HString &T){
HString V;
V.length = T.length;
cout<<"输入需要替换的串V:";
for(int i=0; i<V.length; i++)
cin>>V.ch[i];
int pos = Index(S,T); //返回串T在串S中的位置
for(int i=0; i<V.length; i++){
//替换
S.ch[pos] = V