如何在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";


以上是如何在C++中读取反斜杠作为字符串的一部分的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>