当前位置: 首页 > 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>
http://www.jsqmd.com/news/1099781/

相关文章:

  • 6款论文降AI率软件横评:AI率直降安全线,学生党必入平价款
  • Bubble Tea:用 Go 写终端 UI,这事没那么难
  • GPT-5.6全面公开与Cerebras 750 t/s上线:从受限预览到开发者普惠
  • 第9篇:《AMS1117输出振荡排查:输出电容用陶瓷替代钽电容的稳定性问题》
  • MiniMax Code Plan 限时 9 折!分享我的订阅体验和优惠领取方式
  • 孟获MengHuo——一站式智能直播信息采集分析工具
  • 泰戈尔的诗歌
  • 【毕业设计】基于 SpringBoot 的动漫游戏周边线上交易服务系统的设计与实现 基于 SpringBoot 的游戏手办周边销售管理系统(源码+文档+远程调试,全bao定制等)
  • ChatGPT Pro 200美元付款失败怎么办?国内用户没有海外卡怎么开通更稳妥
  • 第十章 结构体与共用体 结构体仿真测试
  • 计算机Java毕设实战-基于 SpringBoot 的高校心理咨询服务管理系统的设计与实现 基于 SpringBoot 的学生心理健康档案管理系【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 开源多Agent投资研究框架ai-berkshire:从架构到部署实战
  • AIGC 应用上线前安全能力清单:模型、内容、账号、业务与合规
  • 强强联手赴慕展!中国星坤 × 立创商城,一站式解锁互连方案 + 全链条研发采购
  • 计算机毕业设计之二手书回收平台设计与实现
  • Web渗透测试课程学习心得:零基础入门Web安全攻防实战总结
  • 覆盖 190 国、400 品牌:中国 TV OS 如何撬开全球智慧家庭市场
  • Python学习笔记·第25天:Pandas高级技巧——用最通俗的话讲懂重采样、多索引和数据合并
  • Java毕设选题推荐:基于 SpringBoot 的潮流游戏周边网购交易平台的设计与实现 基于 SpringBoot 的游戏周边商品订单管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • VSCode Remote SSH 中 Codex 连接超时的排查与解决记录
  • 一句指令完成电脑操作!腾讯的AI助手Marvis让我电脑会干活了:改设置、查文件、整理文档
  • 请问微信小程序域名迁移有懂行的吗?有偿咨询
  • ChatGPTPlus和Pro怎么选?普通用户别再乱花钱了
  • SeaweedFS:33000 Star 的分布式文件系统,小文件读写做到了极致
  • Java毕设项目:基于 SpringBoot 的高校心理健康普查管理系统的设计与实现 基于 SpringBoot 的学生心理测评统计分析系统 (源码+文档,讲解、调试运行,定制等)
  • Java计算机毕设之基于 SpringBoot 的二次元潮玩交易商城管理系统的设计与实现 基于 SpringBoot 的游戏周边二手交易流转系统(完整前后端代码+说明文档+LW,调试定制等)
  • SpringDoc OpenAPI 配置
  • ESP32实验教程:三位按键输入译码控制8路输出(替代74HC138逻辑)
  • python: Fail-Fast Pattern
  • AI优化mRNA翻译效率:从密码子优化到深度学习驱动的序列设计