以最佳方式提示(如果可能 - 通过 STL)用某个字符替换字符串中的一组字符。
现在我这样做:
std::wstring author;
std::replace(author.begin(), author.end(), L'.', L' ');
std::replace(author.begin(), author.end(), L',', L' ');
std::replace(author.begin(), author.end(), L'-', L' ');
std::replace(author.begin(), author.end(), L'\t', L' ');
但我想(如果可能的话)制作一个最佳、快速且同时紧凑的代码(例如,在 1 行中)。也许通过正则表达式可以做到这一点,然后不知道如何。
如果你想使用标准算法,那么最好是这样:
您可以使用标准算法或基于范围的
std::replace_if
循环for
,以及std::wstring
.下面是一个演示程序,显示了列出的替换字符的方法。该程序使用
std::quoted
在 C++17 中引入的 manipulator 。如果您的编译器不支持它,那么只需将表达式替换std::quoted( s )
为s
.程序输出到控制台:
您可以使用商品标签
switch
的属性fallthrough
来避免不必要的编译器警告。例如,使用类方法可能更好。毕竟,这就是他们的目的: