gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:30:45 35 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 星体平面,C++11 中的新功能)

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

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

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

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