如何在C++中读取反斜杠作为字符串的一部分
我试图将反斜杠作为字符串的一部分读取,但它总是被转义。
例如:
string s = "Bones"
for(int i = 0; i < s.size(); i++) {
if (s[i] == '\') cout << "Found a backslash";
}
那行不通。在其他测试中,我总是将字符串读取为“Boes”。我如何能够读取该反斜杠以便我可以解析整个字符串?
回答
您必须转义原始字符串中的反斜杠。
string s = "Bo\nes";
否则,字符串中没有反斜杠字符进行比较。
回答
以下是示例
std::string s1 = "Bo\nes";
std::string s2 = R"(Bones)";
也就是说,您必须对'\'反斜杠字符或原始字符串文字使用转义序列。
这是一个演示程序。
#include <iostream>
int main()
{
std::string s1 = "Bo\nes";
std::string s2 = R"(Bones)";
std::cout << """ << s1 << ""n";
std::cout << """ << s2 << ""n";
return 0;
}
它的输出是
"Bones"
"Bones"
另一种方法是使用八进制或十六进制转义序列,例如
std::string s = "Bo134nes";
或者
std::string s = "Box5Cnes";