C++相关之功能<字符串拆分>

/*
 * func: 将src字符串根据split_string为关键拆分并得到一个vector容器
 * src: 源字符串
 * split_string: 关键字符串
 * return: vector容器
*/
std::vector<std::string> split_string(std::string src, const std::string &split_string) {
    std::vector<std::string> gstr;
    try{
        while(src.find_first_of(split_string) != std::string::npos) {
            gstr.push_back(src.substr(0,src.find_first_of(split_string)));
            src.erase(0,src.find_first_of(split_string)+split_string.length());
        }
        gstr.push_back(src);
    }catch(std::exception &e) {
        std::cerr << e.what() << std::endl;
    }
    return gstr;
}

/*
 * func: 获取完整的字符串
 * src:源字符串
 * tem:暂存,将被其他代替
 * sub:替代字符串
*/
std::string get_full_speech(std::string &src,const std::string &tem,std::string &sub) {
    std::string res;
    try{
        if(src.find(tem.c_str()) != std::string::npos) {
            src.replace(src.find(tem.c_str()),tem.length(),sub);
        }    
    }catch(std::exception &e) {
        std::cerr << e.what() << std::endl;
    }
    res = src;
    return res;
}

测试程序

void start() {
        std::string str = "你好,%需要什么服务///天气怎么样///我叫%,你们知道吗///大河治水%来,带我";
        std::vector<std::string> vv = split_string(str,std::string("///"));
        for(int i = 0 ; i < vv.size(); i ++)
        {
            std::string src = vv[i];
            std::cout << src << std::endl;
            std::string sub = "帅哥";
            std::string rel = get_full_speech(src,std::string("%"),sub);
            std::cout << rel << std::endl;
        }
}

输出结果:
你好,%需要什么服务
你好,帅哥需要什么服务
天气怎么样
天气怎么样
我叫%,你们知道吗
我叫帅哥,你们知道吗
大河治水%来,带我
大河治水帅哥来,带我

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值