#include <iostream>
 #include<bits/stdc++.h>
 using namespace std;
 //定义一个void函数,有三个参数,分别是s1,s2,ch,要在s1里面找到ch,插入s2;
 void insert(char s1[],char s2[],char ch)
 {
     //定义两个字符指针,分别指向两个字符串;
     char *p=s1;
     char *q=s2;
     //通过遍历找到ch的位置,while循环直到*p==ch结束.
     while(*p++!=ch);//while循环后面有;表示循环体为空,只进行循环不进行操作
     //遍历s2
     while(*s2!='\0')
     {
         q=p;//z将指针p赋值给q,更新ch的位置
         while(*q!='\0') q++;//遍历s2,求出s1+s2的空间
         while(q>=p)//这个其实就是以s2长度为循环条件的
         *(p+1)=*q--;//依次将s2赋值到ch后
         *++q=*s2++;
         p++;
     }
 }
 int main()
 {
     char s1[1000]="abcdefaaaaaf";
     char ch='c';
     char s2[100]="gh";
     char s3[2000];
     insert(s1,s2,ch);
     cout<<s1<<endl;
 }
  

京公网安备 11010502036488号