P3. 编写函数void insert(char s1[],char s2[],char ch),功能为:在字符串s1中的指定字符ch后处插入字符串s2,如该字符串中无此字符,则不进行任何操作;若有多个相同字符,则在第一次出现的字符后插入。在主函数中输入字符串s1、s2和字符ch,并输出结果字符串s1。
如输入:AAB12345BCD
cdef
B
输出为:AABcdef12345BCD
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void insert(char a[],char b[],char ch);
int main()
{
char a[]="AAB12345BCD",b[]="cdef";
char ch;
/*gets(s1);
gets(s2);*/
puts(a);
puts(b);
scanf("%c",ch);
insert(a,b,ch);
puts(a);
return 0;
}
void insert(char a[],char b[],char ch)
{
char *p=a,*q;
while(*p!=ch)
{//确定字符ch的位置
p++;
}
while(*b!='\0')
{
q=p;
while(*q!='\0')
{ //确定a[]的最后的位置
q++;
}
while(q>=p)
{//a[]向后移一个位置
*(q+1)=*(q--);
}
*(++q)=*(b++);//将b[]的一个字符赋给a[]
p++;
}
}