Table of Contents
C++ 转义符
这些转义序列用于表示 C++ 字符串和字符字面量中的特殊字符,+*?^$\.[]{}()|/
这些符号需要用反斜杠来进行转义。
转义符 | 字符含义 | ASIC符号 | 十进制ASCII码 | 十六进制ASCII码 |
---|---|---|---|---|
\a | 振铃 | BEL | 7 | 0x7 |
\b | 退格 | BS | 8 | 0x8 |
\t | 水平制表符 | HT | 9 | 0x9 |
\n | 换行符 | NL(LF) | 10 | 0xA |
\v | 垂直制表符 | VT | 11 | 0xB |
\f | 换页 | FF | 12 | 0xC |
\r | 回车 | CR | 13 | 0xD |
\\ | 反斜杠 | \ | 92 | 0x5C |
\" | 双引号 | “ | 34 | 0x22 |
\' | 单引号 | ‘ | 39 | 0x27 |
\? | 问号 | ? | 63 | 0x3F |
例如,如果希望在字符串中包含双引号字符,则可以使用\"转义序列来表示它。类似地,如果想在字符串中包含换行符,可以使用\n转义序列。
用法
下面是c++中使用转义序列的一个例子:
#include <iostream>
int main() {
std::cout << "Hello, world!\n";
std::cout << "This is a \"quoted\" string.\n";
std::cout << "This is a\ttabbed\tstring.\n";
std::cout << "This is a\bbackspaced string.\n";
std::cout << "This is a\rreturn string.\n";
std::cout << "This is a\fform feed string.\n";
std::cout << "This is an\aalert (bell) string.\n";
std::cout << "This is a\vvertical tabbed string.\n";
return 0;
}
输出结果如下:
Hello, world! //换行
This is a "quoted" string. //转义使句子中显示双引号
This is a tabbed string. //a后面的内容空开一个制表符的距离
This is backspaced string. //退格符删除了前面的一个字符a
return string. //回车到行首,之后输出的内容从第一个字符开始替换
This is a
form feed string. //换页符 从a后面换一页显示
This is analert (bell) string. //响铃符 程序执行后会发出叮的一声
This is a
vertical tabbed string. //和换页符雷同
注意事项
在使用转义符时,需要注意:
- 在 C 和 C++ 中,所有的转义符都必须在字符串的开头或结尾位置出现。例如,对于
"It\'s a \"book\".
,\'
号表示一个单引号,\"
表示一个双引号。
输出结果为
It's a "book".
- 在某些情况下,转义序列可能会被忽略而不会被视为转义序列本身。例如,对于
"\t"
(Tab)和"\n"
(Newline)来说,它们本身就是非法字符并且不会被视为空格或其他任何内容。但是在某些情况下它们可能会被视为空格或其他字符而非换行符。 -
在某些情况下,编译器可能会自动添加适当的转义序列以确保代码能够正确地编译和执行。例如,对于 C++ 代码中的泛型类型推导式
<T>
(参数类型)或者枚举类型推导式<Enum>
(枚举类型)时就会自动添加适当的转义序列以确保代码能够正确地运行。
总之,正确使用转义序列是编写高质量 C/C++ 代码的关键之一。如果您遇到了任何问题或疑惑,请查阅相关文档或咨询您的编程教师或社区支持人员以获取更多帮助。
文章评论