c++编写函数实现字符串中指定字符位置插入字符串

#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;


}
 

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值