gpt4 book ai didi

c++ - C++ 字符串文字转义字符的规则

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

字符串文字中转义字符\的规则是什么?是否有所有转义字符的列表?

特别是,当我在 gedit 的字符串文字中使用 \ 并在其后跟任何三个数字时,它会以不同的方式对它们进行着色。

我试图创建一个 std::string ,该字符串由字符 0 后跟空字符 (\0 ),后跟字符 0。但是,语法突出显示提醒我,这可能会创建类似字符 0 后跟空字符(\00,又名 \0 ), 也就是说只有两个字符。

对于这个问题的解决方案,这是最好的方法吗:

std::string ("0\0" "0", 3)  // String concatenation 

关于转义字符在字符串文字中的一般作用,是否有一些引用?例如,'\a' 是什么?

最佳答案

控制字符:

(十六进制代码采用与 ASCII 兼容的字符编码。)

  • \a = \x07 = 警报(响铃)
  • \b = \x08 = 退格键
  • \t = \x09 = 水平制表符
  • \n = \x0A = 换行(或换行)
  • \v = \x0B = 垂直制表符
  • \f = \x0C = 换页
  • \r = \x0D = 回车
  • \e = \x1B = escape(非标准 GCC 扩展)

标点符号:

  • \" = 引号('"' 不需要反斜杠)
  • \' = 撇号("'" 不需要反斜杠)
  • \? = 问号(用于避免三字母组合)
  • \\ = 反斜杠

数字字符引用:

  • \ + 最多 3 个八进制数
  • \x + 任意数量的十六进制数字
  • \u + 4 个十六进制数字(Unicode BMP,C++11 新增)
  • \U + 8 个十六进制数字(Unicode astral planes,C++11 新增)

\0 = \00 = \000 = 空字符的八进制转义

如果您确实希望在 \0 之后有一个实际的数字字符,那么是的,我建议使用字符串连接。请注意,文字各部分之间的空格是可选的,因此您可以编写 "\0""0"

关于c++ - C++ 字符串文字转义字符的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55225449/

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