#include
#include
using namespace std;
void InsertString(char s1[], char s2[], int index);
int main()
{
char s1[20], s2[20];
int index;
cout << "Input s1:";
cin >> s1;
cout << "Input s2:";
cin >> s2;
cout << "Input the index:";
cin >> index;
InsertString(s1, s2, index);
cout << "\nThe new string:" << s1 << endl;
return 0;
}
void InsertString(char s1[],char s2[],int index){
int i,n=0,m=0;
char s3[20];
strcpy(s3,s1);
while(*s1!='\0'){
s1++;
n++;
}
while(*s2!='\0'){
s2++;
m++;
}
for(i=index-1;i<=m;i++){
s1[i]=s2[i];
}
for(i=m+1;i<=n;i++){
s1[i]=s3[i];
}
s1[i]='\0';
}
这段代码的问题
void InsertString(char s1[],char s2[],int index){
int n=0,m=0;
char s3[40]={0};
while(*(s1+n)!='\0'){
n++;
}
while(*(s2+m)!='\0'){
m++;
}
strcpy(s3,s1);
strcpy(s3+index-1,s2);
strcpy(s3+(index+m-1),s1+index-1);
strcpy(s1,s3);
}
需要判断一下index是否超出s1了。