如何在C++中用'\'替换''来处理转义序列?

How do i replace '' by '' in C++ to deal with escape sequences?

本文关键字:处理 转义序列 替换 C++ 中用      更新时间:2023-10-16

我想处理转义序列,如果我将字符串存储在变量中,例如"a\bcd\ref",那么我希望输出与我给出的字符串相同,即"a\bcd\ref"。 编译器不应解释。我尝试使用regex_replace和其他许多东西,但我一无所获。如果有人能提出解决方案,那将有很大帮助。

当你想写这样的字符串时,

"abncdref"

您必须转义反斜杠并写入 \\ 而不仅仅是一个 \。

char* c = "a\b\ncd\ref";
std::cout << c;

让我知道这是否是您想要的。

你用什么机制来"将字符串存储在变量中"?我的意思是,你在做什么: std::string foo = "abc";

std::string foo; std::cin >> foo; // Or some other stream operator such as std::ifstream ?

如果是后者,编译器将自动添加转义序列,您不必担心。转义序列仅在告诉编译器源文件中的硬编码字符串表示特殊的 ASCII 字符时才需要。如果它不是硬编码的,您将获得正确的字节,并且不需要在前面加上前缀。