我正在尝试这样做:
#include <iostream>
std::string message = "Hello\r\"world\"";
int main() {
if (message[5] == '\\') {
switch (message[6]) {
case 'r':
std::cout << "\\r escape..." << std::endl;
break;
case '"':
std::cout << "\" escape..." << std::endl;
break;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道逻辑上是正确的,但是如果你理解我想要做什么,你会注意到我想知道字符串是否存在转义.如果角色是逃脱,请执行上面看到的(开关).
那可能吗?谢谢.
这是不可能的.在运行时,字符串中将包含以下字节:
事实上,这个字符串常量恰好是通过转义序列创建的,这完全是无关紧要的,因为这只是编译器的简写来创建上面的字节.否则内存中存在反斜杠,因此在运行时无法检测这些转义序列.
当然,您可以查看字节6是13还是字节7是34.