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

原始字面量

C++ 中存在转义字符,例如"\n"或"\t"。当我们尝试打印转义字符时,它们不会显示在输出中。为了在输出屏幕上显示转义字符,我们使用了"R(带转义字符的字符串)"作为原始字符串字面量。在字符串前面使用 R 后,转义字符将显示在输出中。

定义方式: R "xxx(原始字符串)xxx"

其中()两边的xxx要一样包括长度、顺序;

xxx在编译时会被忽略,对括号中的字符串没有影响,一般xxx用途相当于注释这个字符串的用途,因此一般不用指定

原始字符串必须用括号()括起来。

例如:当我们要打印一个路径时,由于路径字符串中常常包含一些特殊字符,传统方法通常需要使用转义字符 '\' 来处理。但如果使用原始字符串字面量,就可以轻松解决这个问题。

#include <iostream>
using namespace std;
int main(){string str = "E:\wwh\c++\temp\cpp_new_features";cout << str << endl;string str1 = "E:\\wwh\\c++\\temp\\cpp_new_features";cout << str1 << endl;string str2 = R"(E:\wwh\c++\temp\cpp_new_features)";cout << str2 << endl;string str3 = R"123abc(E:\wwh\c++\temp\cpp_new_features)123abc";cout << str3 << endl;system("pause");return 0;
}

输出结果:

E:wwhc++        empcpp_new_features
E:\wwh\c++\temp\cpp_new_features
E:\wwh\c++\temp\cpp_new_features
E:\wwh\c++\temp\cpp_new_features   
  • 第一条语句中,\h 和 \w 转义失败,对应地字符串会原样输出;
  • 第二条语句中,是在没有原始字面量的时候比较常见的操作,第一个反斜杠对第二个反斜杠的转义,'\\'表示’\';
  • 第三条语句中,使用了原始字面量 R() 中的内容来描述路径的字符串,因此无需做任何处理;
  • 第四条语句中,括号两边加入xxx,不同会报错,编译会忽略。

在 C++11 之前如果一个字符串分别写到了不同行里,需要加连接符'\',这种方式不仅繁琐,还破坏了表达式的原始含义,如果使用原始字面量就变得简单很多,很强直观,可读性强。我们通过一个输出 HTML 标签的例子体会一下原始字面量。

#include <iostream>
using namespace std;
int main(){string str = "<html>\<head>\<title>\原始字面量\</title>\</head>\<body>\<p>\C++11字符串原始字面量\</p>\</body>\</html>";cout << str << endl;string str1 = "< html > \n\<head>\n\<title>\n\原始字面量\n\< / title>\n\< / head>\n\<body>\n\<p>\n\C++11字符串原始字面量\n\</p>\n\</body>\n\</html>";cout << str1 << endl;string str2 = R"(<html><head><title>原始字面量</title></head><body><p>C++11字符串原始字面量</p></body></html>	)";cout << str2 << endl;system("pause");return 0;
}

输出结果:

<html>          <head>          <title>         原始字面量              </title>                </head>         <body> <p>              C++11字符串原始字面量           </p>            </body>         </html>
< html ><head><title>原始字面量< / title>< / head><body><p>C++11字符串原始字面量</p></body></html>
<html><head><title>原始字面量</title></head><body><p>C++11字符串原始字面量</p></body></html>
  • 第一条语句中,每个换行加'\',但是实际输出没有换行;
  • 第二条语句中,在第一条语句基础上加上了换行符'\n';
  • 第三条语句中,使用了原始字面量 R() 中的内容来描述路径的字符串,因此无需做任何处理;
http://www.gsyq.cn/news/82286.html

相关文章:

  • 2025年佛山债务纠纷律师事务所推荐:实力强的债务纠纷律师 - mypinpai
  • 【分布式利器:RocketMQ】2、RocketMQ消息重复?3种幂等优秀的方案,彻底解决重复消费(附代码实操)
  • 六恒空气管理系统综合性价比多方面对比推荐品牌 - 速递信息
  • 2025年全屋定制家哪家好?十大品牌硬核实力解码与品质之选指南,欧蒂尼家居引领行业 - 速递信息
  • 2025年浙江网站建设机构推荐榜单:外贸网站建设‌/商城网站建设‌/高端网站建设源头机构精选 - 品牌推荐官
  • 2025 年四川户外防腐木地板公司排名榜:产品权威评测 - 朴素的承诺
  • 国内国产堆积密度仪技术升级,2025哪个品牌公司产品售后好? - 品牌推荐大师
  • 2025年投影机供应商综合实力排行榜,雾幕投影机/山体投影机/城墙投影机投影机品牌哪家好 - 品牌推荐师
  • 2025年发光字标识标牌工厂推荐,口碑好的发光字标识标牌制作 - myqiye
  • 2025年12月杨浦区国际高中,闵行区国际高中,宝山区国际高中推荐:全流程升学服务深度解析​ - 品牌鉴赏师
  • python中的类(class)
  • 2025年12月地暖供暖材料,水地暖材料,地暖厂家推荐:行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • CF2115F2 Gellyfish and Lycoris Radiata (Hard Version)
  • 装饰模式
  • BIM+GIS深度融合:高速公路数字化底座建设方案
  • 2025年12月精密铝压铸,铝合金压铸,铝压铸厂家推荐:行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • CH5xx 程序中获取代码大小
  • 2025年12月房屋沉降检测,房屋倾斜检测,房屋质量检测公司推荐:行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • 上海全屋定制厂家推荐:靠谱之选打造理想家居 - myqiye
  • 2025年长三角包装印刷企业排名:上海万通卡牌印刷工艺怎样? - 工业品牌热点
  • 2025年河南正规叛逆学校排名:资质齐全的叛逆学校有哪些? - 工业推荐榜
  • 大一统视角理解扩散模型Understanding Diffusion Models: A Unified Perspective
  • C++学习笔记 03 枚举
  • TinyMCE + Vue 使用
  • 2025年推荐厚片吸塑制品厂家TOP5:吸塑制品生产厂家解析 - 工业品牌热点
  • C++学习笔记02 static关键字
  • doker批量停用和删除容器命令
  • 国产替代实验室离心机实力厂家推荐:四川蜀科、湖南凯达、美瑞克仪器 - 品牌推荐大师
  • 为什么我们需要使用react提供的ChildrenAPI而不是 JavaScript 的 map?
  • 医用/低速/生物制药/血站/大容量/微量高速/国产离心机哪个品牌好?实力厂家推荐与选购建议指南 - 品牌推荐大师