C++11中的小细节--字符串的原始字面量

原始字面量很容易理解,即不进行转义的完整字符串。

最近看了看Python,其中讲到了原始字符串。

Both string and bytes literals may optionally be prefixed with a letter ‘r’ or ‘R’; such strings are called raw strings and treat backslashes as literal characters. As a result, in string literals, ‘\U’ and ‘\u’ escapes in raw strings are not treated specially. Given that python 2.x’s raw unicode literals behave differently than Python 3.x’s the ‘ur’ syntax is not supported.

例如,原始字符串对于反斜杠不会做特殊的处理:

# Python 程序
print r'C:\nowhere'

即在Python中,原始字符串以r开头。

这样的功能C++会有吗? 
C++11不愧称为modern c++,当然会提供原始字符串了。

但是Python里使用的是r,而c++11中使用的是R。

但是需要注意的是: 
原始字符串字面量的定义为:R “xxx(raw string)xxx” 
其中,原始字符串必须用括号()括起来,括号的前后可以加其他字符串,所加的字符串会被忽略,并且加的字符串必须在括号两边同时出现。

#include <iostream>
#include <string>

int main()
{
    // 一个普通的字符串,'\n'被当作是转义字符,表示一个换行符。
    std::string normal_str = "First line.\nSecond line.\nEnd of message.\n";

    // 一个raw string,'\'不会被转义处理。因此,"\n"表示两个字符:字符反斜杠 和 字母n。
    std::string raw_str = R"(First line.\nSecond line.\nEnd of message.\n)";

    std::cout << normal_str << std::endl;
    std::cout << raw_str << std::endl;
    std::cout << R"foo(Hello, world!)foo" << std::endl;

    // raw string可以跨越多行,其中的空白和换行符都属于字符串的一部分。
    std::cout <<R"(
                   Hello,
                   world!
                   )" << std::endl;

    return 0;
}
时间: 2024-10-06 08:04:49

C++11中的小细节--字符串的原始字面量的相关文章

指针-Javascript中通过点操作符定义属性和字面量形式定义的区别

问题描述 Javascript中通过点操作符定义属性和字面量形式定义的区别 我已经有一种这样的困惑:第一种:function Person(){};Person.name = ""liang"";Person.age = 22 ;Person.sayName = function(){alert(this.name)}alert(Person.prototype.constructor == Person) ; // true在以上这个代码中,我创建了一个构造函数P

文本处理中的小细节

1.char还是uchar(unsigned char) char在C/C++中占用1byte(即8bits). ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符.标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0到9.标点符号,以及在美式英语中使用的特殊控制字符.标准ASCII码是7位二进制表示,表示128个字符(0~127),最高位是0.如 00110000(2) =48D=30H='0'. 由于char能表示的范围是(-12

请教javaScript中的小细节-----

问题描述 刚看了一点JS的视频:这样写<scriptlanguage="javascript">alert(newDate());</script>当中去掉""和new运行正常,既然这样干嘛要带上,有区别吗?另外<inputtype=hiddenname=uservalue=james><inputtype=passwordname=code><inputtype=filename=file1>里面也可以完

网站seo优化过程中的致命细节

大家都知道网站在做seo优化的过程中要把握的一些重点,诸如内容的更新.外链的建设等等.但是有一些优化过程中的小细节也决不能忽视,这些小细节虽然并不能直接的为网站带来多好的排名,或者多少的流量,但是往往是这些细节上的问题对网站seo来说却是致命的.   1.服务器的稳定性. 服务器或者空间是否稳定对任何网站来说都是至关重要的,但往往有些人会是这样的"细节问题".网站并不是只要可以访问就万事大吉的,网站是需要时刻保证正常访问的.有些朋友由于资金的问题选择租用国外的空间,或者不太稳定但价格低

《Python参考手册(第4版•修订版)》——2.4 字符串字面量

2.4 字符串字面量 字符串字面量用于指定一个字符序列,其定义方法是把文本放入单引号(').双引号(")或三引号('''或""")中.这三种引号形式在语义上没有差别,但要求在字符串开始和结尾使用的引号类型必须相同.置于单引号和双引号中的字符串必须定义在一行上,而三引号的字符串可以分布在多行上,并且会将所有格式符号(即换行符.制表符.空格等)包含在内.像"hello" 'world'这样的相邻字符串(由空格.换行符或续行符隔开)将被连接起来,形成一

网页中图片幻灯片用户体验设计小细节

图片幻灯片是网页中最常见的一种效果,功能几乎差别不大,可很多网页设计师可能都没有考虑过这种最常用的幻灯片其中所涵盖的用户体验思想,本文通过国内外几家大型网站中的幻灯片来分析他们各自的设计小细节及给我们带来的体验 1.卓越亚马逊的首页轮换图片,每刷新一次,都是随机不同的顺序显示,这样的设计解决了对于较多图片轮换而靠后的图片信息很少被看到的问题,这点对于电子商务等时效性不是很讲究的网站来说尤其重要: 2.最初的时候是点击照片跳转到下一张,再然后是点击照片的左边是上一张,点击照片右边是下一张,当我们习

浅谈站点升级过程中你必须注意到的几个小细节

  每一个站点为了提高安全性.用户的友好体验度等等,都免不了要对站点进行升级.而升级对于站点的SEO的影响又是刻骨铭心的.如果此时你的网站已经有不错的搜索结果排名.升级给网站所造成的冲击也是不可避免的.站长们都知道这个影响轻则会对网站的排名产生负面影响,严重的话很可能会因为处理不好而遭到搜索引擎不必要的惩罚.那么我们在升级过程中要如何降低对网站造成的影响呢?我们需要注意到很多问题,尤其是在一些小细节上.不然的话千里之堤将可能毁于蚁穴. 细节一:切忌直接在线上修改 一个站点的升级并不容易,期间可能

c++问题-c++中关于模板的一些小细节

问题描述 c++中关于模板的一些小细节 今天突然看到一细节,在模板中 template和template的区别是什么 解决方案 C++中typename和class的区别http://blog.163.com/susu_sf/blog/static/171060253201092233759957/ http://blog.csdn.net/dick_china/article/details/4522253 解决方案二: C++中typename和class的区别http://blog.163

Java 字符串处理的一些小细节

转载请注明出处:王亟亟的大牛之路 讲今天的内容之前温故一些理论知识?(部分理论知识来源于网上,谢谢开源大家庭) 1.什么是指针? -指针是指向内存中的地址,该地址就是存储变量的值. 2.Java中没有了指针,那以什么东西来替代指针相应的功能? -java中我们所谓的对象引用就是指针,只是没有像C/C++中给出了一个明确的定义.java是为了避免指针带来的使用上的麻烦,所以就使用对象的引用来代替了指针. 3.那么这些对象的引用又存放在哪? -java中的内存分为堆内存(heap)和栈内存(stac