gpt4 book ai didi

c++ - 输出包含所有转义字符的 C++ 字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:44:08 26 4
gpt4 key购买 nike

我有这样一个字符串:

string s = "\t Hello \n";

当我打印它时,它会给我一个制表符,然后是 Hello,然后是一个新行。但是,无论如何我可以打印它以便在我的控制台中看到它:

\t Hello \n

换句话说,我希望字符串忽略转义字符并将其视为实际字符串?

最佳答案

In other words, I want the string to disregard the escape characters and treat it as an actual string?

如果字符串是硬编码的,如您所示,您可以修改它以使用:

string s = "\\t Hello \\n";

如果您希望能够处理程序中抛出的任何字符串,则必须编写一个函数并处理该语言允许的所有转义序列。

std::ostream& writeString(std::ostream& out, std::string const& s)
{
for ( auto ch : s )
{
switch (ch)
{
case '\'':
out << "\\'";
break;

case '\"':
out << "\\\"";
break;

case '\?':
out << "\\?";
break;

case '\\':
out << "\\\\";
break;

case '\a':
out << "\\a";
break;

case '\b':
out << "\\b";
break;

case '\f':
out << "\\f";
break;

case '\n':
out << "\\n";
break;

case '\r':
out << "\\r";
break;

case '\t':
out << "\\t";
break;

case '\v':
out << "\\v";
break;

default:
out << ch;
}
}

return out;
}

用作:

writeString(std::cout, s);

关于c++ - 输出包含所有转义字符的 C++ 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42711201/

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