C++ 11 实现一次性输出多行文本-无需转义符----原始字符串文本(Raw String Literal)的应用

面对需要多段字符输出结果的情况,C++11中的新特性:Raw String Literal,可谓是造福人民。

示例

在这里插入图片描述

原理

旧的字符串字面量的语法对于带有特殊字符意义的字面量需要添加转义符 "\" 来表示。

如:

转义符输出
\n换行
\t水平制表
\v垂直制表
单引号字符
"双引号字符

因此面对一些比较繁琐的输出格式时,我们常常需要使用大量的转义符。
尤其是在正则表达式中。

想实现下面式子

\d{1}-\d{2}|\d{6}-\d{2}

我们需要写成

\\d{1}-\\d{2}|\\d{6}-\\d{2}

明显非常不方便,且可读性太差

引入了Raw String Literal之后,将不会对字符串内的转义符进行处理,进而达到所见即所得的效果。
字符串内的内容会如实输出到屏幕上。

示例
在这里插入图片描述

用法

就如上述示例中一样,基本用法就是将原来输出字符串 "" 替换成 R"()"

而后出现了一个问题就是,加入字符串内出现了 )" ,编译器不清楚哪一个才是真正的结束位置。
这时我们需要用到定界符(delimiter)

Raw String Literal的完整语法是 R"deli(...)deli"
注意注意注意!
其中 deli 并不是固定的!
其中 deli 并不是固定的!
其中 deli 并不是固定的!

那里其实是一个用户自定义的字符序列,最多16个基本字符,不可含反斜线,空格和小括号。
常用的deli是delimiter的缩写。

示例

在这里插入图片描述

  • 21
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值