gpt4 book ai didi

c++ - 如何用转义字符替换字符串中的所有特殊字符?

转载 作者:行者123 更新时间:2023-12-02 10:35:49 24 4
gpt4 key购买 nike

如果我有一个看起来像\"A\\nB\"的字符串,如何将其转换为看起来像"A\nB"
\n部分应作为新行。它不应打印“A \ nB”,而应按以下方式打印:

A
B

最佳答案

您可以通过以下方法创建一个单独的函数,以从std::string中删除转义字符:

std::string remove_escape_char(std::string const& s) {
std::string result;
auto it = s.begin();
while (it != s.end()) {
char c = *it++;
if (c == '\\' && it != s.end()) {
switch (*it++) {
case '\\':
c = '\\';
break;
case 'n':
c = '\n';
break;
default:
continue;
}
}
result += c;
}

return result;
}

然后从 std::string中删除 特殊字符的功能:

void remove_special_char(std::string& str, char c) {
auto position = str.find(c);
while (position != std::string::npos) {
str.erase(position, 1);
position = str.find(c);
}
}

您可以使用上述两个功能,例如:

std::string str{"\"A\\nB\""};
remove_special_char(str, 0x22); // remove "
std::cout << remove_escape_char(str) << std::endl;

现在输出应为:
A
B

Demo

关于c++ - 如何用转义字符替换字符串中的所有特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60366767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com