替换\删除字符串中的字符

Cor*_*ell 8 c++ string

string DelStr = "I! am! bored!";
string RepStr = "10/07/10"
Run Code Online (Sandbox Code Playgroud)

我要删除所有'!' 在DelStr上我想在RepStr字符串上用' - '替换所有'/'.

有没有办法做这个没有循环来完成每个角色?

Fre*_*Foo 13

删除感叹号:

#include <algorithm>
#include <iterator>

std::string result;
std::remove_copy(delStr.begin(), delStr.end(), std::back_inserter(result), '!');
Run Code Online (Sandbox Code Playgroud)

或者,如果要打印字符串,则不需要result变量:

#include <iostream>

std::remove_copy(delStr.begin(), delStr.end(),
                 std::ostream_iterator<char>(std::cout), '!');
Run Code Online (Sandbox Code Playgroud)

用短划线替换斜杠:

std::replace(repStr.begin(), repStr.end(), '/', '-');
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这意味着如果您尝试使用 result.size(),您将获得 destStr 的大小,因为 result 还将包含额外的空字符。 (2认同)