当前位置:  开发笔记 > 编程语言 > 正文

更改字符串C++中的多个字符

如何解决《更改字符串C++中的多个字符》经验,为你挑选了1个好方法。

大家早上好,前几天我在想,我找不到解决办法.

我只需要使用字符串类来更改字符串中的多个字符.

我尝试使用替换功能,但只替换一个字符.

例:

原始字条:"Hola Pepe,com va la vida"

输入要替换的字符aeiou输入要替换它的字符*

H*l*P*p*,c*mv*l*v*d*

谢谢大家.



1> alexeykuzmin..:

我想说你想要的最可读的方法是使用std::transform:

#include 
...
std::set vowels = {'a', 'o', 'e', 'i', 'u'};
char change_to = '*';
std::string s = "Hola Pepe, com va la vida";
auto transformation_operation = [vowels, change_to](char c)
{
    return vowels.count(c) ? change_to : c;
};
std::transform(s.begin(), s.end(), s.begin(), transformation_operation);

transformation_operation是一个lambda,它实际上以理想的方式转换一个char(如果你愿意,可以以函数或类的形式实现).为此,它使用捕获的set vowels和character change_to.要添加更多细节,它会检查字符是否存在于vowels集合中,如果存在,则返回change_to,如果不存在,则返回原始字符.

std::transform为每个元素调用此lambda s.begin()s.end()存储从s.begin()(即)到位的结果.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有