[求助] 字符串查找,连接操作
问题描述:字符串采用数组存储,建立两个字符串string1和string2。输出两个字符串。
将字符串string2的头n个字符添加到string1的尾部。输出结果。查找串string3在string1中的位置,若string3在string1中不存在,则插入string3在string1中的m位置上,输出结果。
seqstring*substring(seqstring string2,int pos,int n)//取string2的头n个字符
{seqstring*t;
int i;
for(i=0;i<=n;i++)
t->ch[i]=string2.ch[pos+i-1];
t->curlen=n;
return t;}
seqstring*concatstring(seqstring*string1,seqstring t)
{int i;
for(i=0;i<t.curlen;i++)
string1->ch[i+string1->curlen]=t.ch[i];
string1->curlen=string1->curlen+t.curlen;
return string1;
puts(string1.ch);}//把取出的字符连接到string1尾部
int indexstring(seqstring string1,seqstring string3)
{int i=0,j=0;
while(i<string1.curlen&&j<string3.curlen)
{if(string1.ch[i]==string3.ch[j])
{i++;
j++;}
else{i=i-j+1;
j=0;}}
if(j==string3.curlen)
return(i-string3.curlen);
else insertstring(seqstring string1,seqstring string3)
puts(string1.ch);}//在string1中查找string3
seqstring*insertstring(seqstring*string1,int m,seqstring string3)
{int i,j;
for(i=m;i<string1->curlen;i++)
string1->ch[i+string3.curlen]=string1->ch[i];
for(i=m;i<string3.curlen+m;i++)
string1->ch[i]=string3.ch[i-m];
string1->curlen+=string3.curlen;
return string1;
puts(string1.ch);}//把string3插入string1的m位置
#include<stdio.h>
#define maxsize 100
typedef struct{char ch[maxsize];
int curlen;
}seqstring;
void main()
{seqstring string1,string2,string3;
int i=0,f;
printf("输入字符串:");
gets(string1.ch);
gets(string2.ch);
gets(string3.ch);
printf("输出string1,string2:");
puts(string1.ch);
puts(string2.ch);
printf("取string2的头n个字符:");
scanf("%d",&n);
seqstring*substring(seqstring string2,0,int n);
printf("把string2的头n个字符连接到string1尾部:");
seqstring*concatstring(seqstring*string1,seqstring t);
printf("查找string3在string1中的位置:");
int indexstring(seqstring string1,seqstring string3);
}
出现错误,不能运行,请高手指教一下,谢了。