1、原始字面量简介

C++11引入了原始字符串字面量Rxxx(rawstring)xxx,用于简化特殊字符和多行字符串的处理。它避免了转义字符的问题,如在路径或HTML标签中的使用,提高了代码的可读性和简洁性。括号内的字符串会被忽略,但若指定则要求前后相同。
摘要由CSDN通过智能技术生成

在C++11中添加了定义原始字符串的字面量,定义方式为: R"xxx(原始字符串)xxx",其中()两边的字符串可以省略。原始字面量R可以直接表示字符串的实际含义,而不需要额外对字符串做转义或者连接等操作。

比如:编程过程中,使用的字符串中常带有一些特殊字符串,对于这些字符往往要做专门的处理,使用了原始字面量就可以轻松解决这个问题,比如打印磁盘路径:

输出结果为:

  • 在 D:\hello\world\test.text 中 \h\w 转义失败,对应的字符会原样输出。

  • 在 D:\\hello\\world\\test.text 中路径的间隔符为 \ 但是这个字符又是转义字符,因此需要使用转义字符将其转义,最终才能得到一个没有特殊含义的普通字符 \

  • 在 R"(D:\hello\world\test.text)" 使用了原始字面量 R()中的内容就是描述路径的原始字符串,无需做任何处理。

通过测试可以看到,使用原始字面量R可以直接得到其原始意义的字符串,再看一个输出HTML标签的例子:

输出结果为:

在C++11之前如果一个字符串分别写到了不同的行里面,需要加连接符,这种方式不仅繁琐,还破坏了表达式的原始含义,如果使用原始字面量就变得简单很多,很强而且直观,可读性强。

输出结果:

最后强调一个细节:在R “xxx(raw string)xxx” 中,原始字符串必须用括号()括起来,括号的前后可以加其他字符串,所加的字符串会被忽略,并且加的字符串必须在括号两边同时出现(也就是说括号两边的字符串要一样且同时出现)。

输出结果:

2、总结

通过输出的信息可以得到如下结论:使用原始字面量 R “xxx (raw string) xxx”,()两边的字符串在解析的时候是会被忽略的,因此一般不用指定。如果在()前后指定了字符串,那么前后的字符串必须相同,否则会出现语法错误。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值