当前位置: 首页 > article >正文

C++转义符及用法

C++ 转义符

这些转义序列用于表示 C++ 字符串和字符字面量中的特殊字符,+*?^$\.[]{}()|/ 这些符号需要用反斜杠来进行转义。

转义符字符含义ASIC符号十进制ASCII码十六进制ASCII码
\a振铃BEL70x7
\b退格BS80x8
\t水平制表符HT90x9
\n换行符NL(LF)100xA
\v垂直制表符VT110xB
\f换页FF120xC
\r回车CR130xD
\\反斜杠\920x5C
\"双引号340x22
\’单引号390x27
\?问号630x3F

例如,如果希望在字符串中包含双引号字符,则可以使用"转义序列来表示它。类似地,如果想在字符串中包含换行符,可以使用\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. //和换页符雷同

注意事项

在使用转义符时,需要注意:

  1. 在 C 和 C++ 中,所有的转义符都必须在字符串的开头或结尾位置出现。例如,对于 "It\'s a \"book\".\'号表示一个单引号,\"表示一个双引号。

输出结果为

It's a "book".
  1. 在某些情况下,转义序列可能会被忽略而不会被视为转义序列本身。例如,对于 "\t"(Tab)和 "\n"(Newline)来说,它们本身就是非法字符并且不会被视为空格或其他任何内容。但是在某些情况下它们可能会被视为空格或其他字符而非换行符。

  2. 在某些情况下,编译器可能会自动添加适当的转义序列以确保代码能够正确地编译和执行。例如,对于 C++ 代码中的泛型类型推导式 <T>(参数类型)或者枚举类型推导式 <Enum>(枚举类型)时就会自动添加适当的转义序列以确保代码能够正确地运行。

总之,正确使用转义序列是编写高质量 C/C++ 代码的关键之一。如果您遇到了任何问题或疑惑,请查阅相关文档或咨询您的编程教师或社区支持人员以获取更多帮助。


http://www.kler.cn/news/160182.html

相关文章:

  • mysql基础之DQL基本单表查询
  • 『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
  • Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版
  • Windows server 部署iSCSI共享磁盘搭建故障转移群集
  • BearPi Std 板从入门到放弃 - 引气入体篇(9)(DAC->ADC)
  • Java LeetCode篇-深入了解二叉树经典解法(三种方式实现:获取二叉树的最大深度)
  • Redis——某马点评day03——part2:秒杀业务异步优化
  • 鸿蒙4.0开发笔记之ArkTS语法基础之应用生命周期与页面中组件的生命周期(十六)
  • Park Unpark
  • Web安全漏洞分析-XSS(下)
  • ApplicationContextAware 类
  • ELK 日志解决方案
  • AI网关究竟是什么,怎么样才算是AI算力的网关
  • 跟着GPT学习shell脚本,理论与实践相结合的学习计划。(一)
  • 团队git操作流程
  • 单片机开发常用的软件构架
  • html5各行各业官网模板源码下载(1)
  • 19、pytest通过mark标记测试函数
  • 每天一点python——day85
  • 记录一次vscode markdown的图片路径相关插件学习配置过程
  • 【微服务】分布式限流如何实现
  • Android10 Dialog bug
  • 【技术干货】宇视IPC音频问题解决步骤
  • 编程常见的问题
  • Java动态代理实现与原理详细分析
  • linux环境下编译安装OpenCV For Java(CentOS 7)
  • 判断完数(写出部分函数)
  • Uncle Maker: (Time)Stamping Out The Competition in Ethereum
  • Ribbon 饥饿加载
  • Fabric:创建应用通道