4、string类

1、使用方法

必须包含#include<string>及using namespace std;

1 char charr1[20];
2 char charr2[20] = "gao";
3 string str1;
4 string str2 = "yixue";
5 cout << "enter charr1:" << endl;
6 cin >> charr1;
7 cout << "enter str1:" << endl;
8 cin >> str1;
9 cout << charr1 << " ,"<<charr2 << "," << str1 << "," << str2 << endl;

2、初始化

string str3{ "I am a girl." };
string str4 = { "I am a student" };

【1】可以使用C风格字符串来初始化string对象

【2】可以使用cin将键盘输入存储到string对象

【3】可以使用cout显示string对象

【4】可以使用数组索引来访问string的字符

【5】如上述代码所示,str1的声明创建一个长度为0的string对象,但将输入读取到str1时,将自动调节str1的长度。

 3、赋值、拼接、附加

【1】不能将一个字符数组赋值给另一个字符数组,但可以将一个字符串赋值给另一个字符串。

【2】可以使用运算符+连接两个字符串

【3】C风格字符串使用strcat()和strcpy()实现拼接。

char charr1[20];
char charr2[20] = "gao";
string str1;
string str2 = "yixue";
    
str1 = str2;
strcpy(charr1, charr2);
str1 += " paste";
strcat(charr1, " paste");

【注】使用字符数组时,总存在目标数组过小,无法存储指定信息的危险。而string具有自动调节大小的功能,从而避免这些问题。

4、string的I/O

 

char charr[20];
cout << strlen(charr);//结果位置,因为数组未初始化,其内容未知。
//strlen从数组的第一个字符开始计数,知道遇到空字符。
string str;
cout << str.size();//结果是0,未被初始化的string对象的长度被自动设置为0
cin.getline(charr, 20);//此处的getline是istream的一个类方法,cin是istream对象
getline(cin, str);//istream中没有处理string的类方法

5、原始(raw)字符串

将"(  和  )"用作定界符。

cout << R"(Jim "King" Tutt uses "\n" instead of endl.)" << '\n';
    //运行结果:Jim "King" Tutt uses "\n" instead of endl.

 

posted @ 2019-09-04 13:46  小新新的蜡笔  阅读(153)  评论(0编辑  收藏  举报