按照一般思路写了一个,按照插入位置,截断源字符串为两个字符串,分别保存,然后连接前半断和插入部分,再连接后半断。用数组实现。
#include <stdio.h>
char *insert(char str[],char substr[],int i)
{
char *temp;
char temp2[255]; //用来保存截断之后的后半断
temp=str;
int j=0;
int k=0;
int i2=i; //保存插入的位置
while(str[i]!='\0') //按照插入的位置截断字符串源,前半断为str,后半断保存在temp2
{
temp2[k]=str[i];
k++;
i++;
}
temp[i2]='\0'; //给截断后的前半断加'\0'
strcat(temp,substr); //连接前半断和插入部分
strcat(temp,temp2); //连接后半断
return temp; //返回
}
int main()
{
char str[255],substr[255],*result;
int i;
printf("please input your str, substr, the place where your want insert.\n");
printf("your str: ");
gets(str);
printf("your substr: ");
gets(substr);
printf("your place: ");
scanf("%d",&i);
printf("\n");
result=insert(str,substr,i);
printf("the result is : %s\n",result);
return 0;
}