【发布时间】:2012-04-30 12:20:53
【问题描述】:
字符串文字中转义字符\的规则是什么?是否有所有转义字符的列表?
特别是,当我在 gedit 的字符串文字中使用 \ 并在其后跟任意三个数字时,它们的颜色会不同。
我试图创建一个 std::string,它由字符 0 后跟空字符 (\0) 和字符 0 构成。但是,语法突出显示提醒我,这可能会创建类似于字符0 后跟空字符(\00,又名\0),也就是说,只有两个字符。
对于这一个问题的解决方案,这是最好的方法吗:
std::string ("0\0" "0", 3) // String concatenation
一般来说,转义字符在字符串文字中的作用是否有一些参考?例如,'\a' 是什么?
【问题讨论】:
-
相关,关于如何escape an escape sequence。最好的解决方案是像以前一样使用串联。
-
如果您需要单个
` just use\`。 -
看来我也可以使用初始化列表语法:
std::string { '0', 0, '0' }; -
我不仅可以使用初始化列表语法,而且我现在强烈推荐它,而不是任何其他需要您指定大小或使用转义字符的构造字符串的方法。考虑stackoverflow.com/questions/164168/… 中概述的微妙的未定义行为
-
我现在意识到我在 1:32 的评论完全被混淆了......我不知道我的意思......