C++ 查找字符串里的所有 '/' 、 '*' 、 ':'、'?' 、'"' 、 '<' 、'>' 、'|' 、 '\\'字符,并把他们去除,不改变其他字符的位置
时间: 2024-09-13 14:06:06 浏览: 40
在C++中,你可以使用标准库中的`std::string`以及迭代器来遍历并替换字符串中的特定字符。这里是一个简单的示例,它会创建一个新的字符串,只保留原始字符串中除指定字符外的其他内容:
```cpp
#include <iostream>
#include <string>
std::string remove_special_chars(const std::string& input, char... special_chars) {
std::string output;
for (char c : input) {
if (c != special_chars... && c != '\\' && c != '\"') { // 避免修改需要保留的特殊字符如反斜杠和双引号
output += c;
}
}
return output;
}
int main() {
std::string str = "Hello/*:/?| world>!";
std::string result = remove_special_chars(str, '/', '*', ':', '?', '"', '<', '>', '|', '\\');
std::cout << "Original string: " << str << "\n";
std::cout << "Modified string: " << result << "\n";
return 0;
}
```
在这个例子中,`remove_special_chars`函数接受一个输入字符串和一系列要移除的特殊字符作为模板参数。它遍历输入字符串,如果遇到不在列表中的字符(除了需要保留的反斜杠和双引号),就添加到输出字符串`output`中。
阅读全文