string类
来源:互联网 发布:淘宝店招代理 编辑:程序博客网 时间:2024/06/08 11:24
要是用string类,必须在程序中包含头文件string。string类位于名称空间std中,因此必须提供一条using编译指令,或者使用std::string来引用它。string类定义隐藏了字符串的数组性质,让你能够像处理普通变量那样处理字符串。
string对象的方式核使用字符数组在很多方面相同。
1 可以使用C风格字符串来初始化string对象。
2 可以使用cin来将键盘输入存储到string对象中。
3 可以使用cout来显示string对象。
4 可以使用数组表示法来访问存储在string对象中的字符。
主要区别:
1 可以将string对象声明为简单变量,而不是数组。
string str1;
string str2=“panther”;
2 使用string类时,某些操作比使用数组时简单。例如,不能将一个数组赋给另一个数组,但可以将一个string对象赋给另一个string对象:
char char1[20];
char char2[20]=char1(错的)
string str1;
string str2=str1;(对的)
string类的其他操作
在C++新增string类之前,程序员也需要完成诸如给字符串赋值等工作,对于C风格字符串,程序员使用C语言库中的函数来完成这些任务。头文件cstring提供了这些函数,例如,可以使用函数strcpy()将字符串复制到字符数组中,使用函数strcat()将字符串附加到字符数组末尾;
strcopy(char1,char2);
strcat(char1,char2);
其他形式的字符串字面值
除了char类型外,C++还有类型wchar_t;而C++11还新增了类型char16_t核char32_t。可创建这些类型的数组和这些类型的字符串字面值,对于这些类型的字符串字面值,C++分别使用前缀L、u和U表示,下面是一些例子:
wchar_t title[]=L"chief Astrogator";
char16_t name[]=u"Felonia “;
char32_t car[]=U”Humber Super Snipe“;
C++11新增的另一种类型是原始(raw)字符串,在原始字符串中,字符表示的就是自己,例如,序列\n不表示换行符,而表示两个常规字符——斜杠核n,因此在屏幕上显示时,将显示这两个字符。另一个例子是,可以在字符串中使用”,而无需在程序中使用\“。当然,既然可在字符串字面量包含”,就不能再使用它来表示字符串的开头和结尾。因此,原始字符串将“(和)”用作定界符,并使用前缀R来标识原始字符串:
cout<<R"(Jim "King" Tutt uses"\n" instead of endl.)"<<'\n';
上述代码将显示如下内容:
Jim "King" Tutt uses"\n" instead of endl.
如果在原始字符串中包含)",该如何办?编译器见到第一个)”时,会不会认为字符串到此结束?会的。但原始字符串语法允许您在表示字符串开头的“和(之间添加其他字符,这意味着表示字符串结尾的”和)之间也必须包含这些字符。因此,使用R“+*(标识原始字符串的开头时,必须使用)+*”标识原始字符串的结尾,下面的语句:
cout<<R"+*("(who wouldn't?)",she whispered.)+*"<<endl;
将显示如下内容:
"(who wouldn't?)",she whispered.
总之,这使用“+*(和)+*”替代了默认定界符“(和)".
- String.String类
- String类
- String 类
- string类
- string类
- string类
- string 类
- string 类
- String类
- String类
- string类
- String类
- String类
- string类
- string 类
- String类
- string类
- string类
- 2-Sat
- 使用Xcode和Instruments调试解决iOS内存泄露
- Windows socket I/O模型 之 select(2)
- 一名运维工程师的读书列表
- 希尔排序
- string类
- 用parted工具实现磁盘分区的一个小脚本
- c++中const使用详解
- Oracle中查看建立索引和使用索引的注意点
- ubuntu ch341 usb-serial adaptor
- 通过属性文件来得到数据库的链接
- Android Bundle类
- 第八周项目2-Time类的运算符重载
- android中Parcelable接口的使用