字符串替换

#include "stdafx.h"
#include <string>
#include <stdarg.h>
#include <memory>
#include <iostream>
#include <map>
using namespace std;

string StringReplace(const string& str_src, const string& from, const string& to) {
    if (str_src.empty()
        || from.empty()
        || to.empty())
    {
        return str_src;
    }

    string str_dst;
    string str_src_tmp = str_src;
    size_t from_size = from.size();
    size_t to_size = to.size();

    // 循环处理未处理字符串
    for (size_t pos = str_src_tmp.find(from); string::npos != pos; pos = str_src_tmp.find(from))
    {
        str_src_tmp.replace(pos, from_size, to);            // 替换from到to
        str_dst += str_src_tmp.substr(0, from_size + pos);  // 获取已处理字符串
        str_src_tmp = str_src_tmp.substr(from_size + pos);  // 获取未处理字符串
    }

    // 拼接剩余字符串
    str_dst += str_src_tmp;

    return str_dst;
}

int main() {
    string src = "abcd";
    string from = "a";
    string to = "A";
    string dst = StringReplace(src, from, to);

    string src2 = "aaaaaa";
    string from2 = "aa";
    string to2 = "bb";
    string dst2 = StringReplace(src2, from2, to2);

    getchar();
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值