题目描述
设计函数void insert(char* s1, char* s2, char* s, int n),用指针实现在字符串s1中的指定位置n处插入字符串s2。
输入
输入包括三行,前两行分别为字符串s1和s2,第三行为一非负整数n。
输出
在s1的指定位置n处插入s2生成的字符串。
样例输入:
abc
def
0
样例输出 :
abc
def
0
代码:
#include<stdio.h>
void insert(char* s1,char* s2,char* s,int n)
{
char* p1=s1+n-1;
char* p2=s+n-1;
while(s1<=p1)
{
*s=*s1;
*s++;
*s1++;
}
if(s==p2+1)
{
while(*s2!='\0')
{
*s=*s2;
*s++;
*s2++;
}
}
while(*s1!='\0')
{
*s=*s1;
*s++;
*s1++;
if(*s1=='\0')
{
break;
}
}
}
int main()
{
char s1[100];
char s2[100];
char s[100];
int n;
gets(s1);
gets(s2);
scanf("%d",&n);
insert(s1,s2,s,n);
printf("%s",s);
return 0;
}