【问题标题】:Find specific characters in string and replace with one character [duplicate]在字符串中查找特定字符并用一个字符替换[重复]
【发布时间】:2019-10-02 13:07:43
【问题描述】:

替换功能允许将字符串中的一个字符更改为另一个字符。 使用:替换(s.begin(),s.end(),'X','Y'); 但是可以用一个来改变两个或多个不同的字符吗? 例如:在字符串“Tell us more about your question”中,我想将所有“o, i, u”更改为“x”。所以在输出时它将是: Tell xs abxxt yxxr qxuestixn

【问题讨论】:

  • 不是重复的,这是另外一个问题,在问它之前,我花了很多时间在stackoverflow上搜索我的答案
  • 亲爱的 lidya 我想你的问题和stackoverflow.com/questions/37952240/…是一样的
  • @NastaranHakimi 我会尝试使用您的答案。谢谢

标签: c++


【解决方案1】:

从另一个答案来看,这应该可行:

void replaceAll(std::string& str, const std::string& from, const std::string& to) {
    if(from.empty())
        return;
    size_t start_pos = 0;
    while((start_pos = str.find(from, start_pos)) != std::string::npos) {
        str.replace(start_pos, from.length(), to);
        start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx'
    }
}

信用:Michael Mrozek on SO

【讨论】:

  • 我知道那个答案,但我不喜欢它,这就是我问的原因,我不需要替换特定范围。例如有一个答案,用“!!”改变“bc”,我的问题是,如果有另一个函数,比如替换,从字符串中取出许多不同的字符并用一个字符替换它们
  • @lidya_q 在这种情况下,答案是否定的,没有内置函数可以满足您的要求。
猜你喜欢
  • 2017-03-02
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
相关资源
最近更新 更多