您的位置:首页 > 编程语言 > C语言/C++

【C++学习笔记】string类处理字符串的一些特点

2017-05-02 23:47 471 查看
一、声明

string是一种类,包含数据和类函数。数据是字符数组。

声明string对象的时候不需要指定数组的长度,直接写名字即可

格式

string 对象名;

二、初始化

string类支持用大括号或双引号进行初始化

string str1 = {'a','b','c','d'};

string str2 = "Hello world!";

三、将输入的字符串存入

格式

cin>>str1;

经测试已确认:

1、遇到空格或者回车,字符串读入结束,回车和空格不在最终结果中,不知道是存入后被换成'\0',还是压根就没读进去,直接在结尾后加'\0'。

2、缓冲区的回车或空格没有了,也就是说,如果连续使用cin获取字符串,不需要处理掉上一个字符串结束时留下的回车,连续cin即可。

要想将空格读入字符串,可采用下面的方法

getline(cin,str);

第一个参数表示在输入流中寻找输入字符串的内容,第二个参数表示将字符串存入的目的地。

四、字符串连接和赋值

string类连接和赋值的方法比较奇特

连接:

str3 = str1 + str2;

直接在str1末尾去掉'\0',然后把str2接上,中间没有空格和换行。

上面一个例子可以发现,string类可以直接用等号赋值,而字符串和数组是不可以直接用名字来赋值的。

格式

str2 = str1;

str1覆盖str2的内容,长度也变成str1的长度。

五、string类对象的输出

支持下列格式

cout<<str1;

cout<<str1<<str2;//str1和str2之间不会添加空格和回车

cout<<(str1 + str2);

六、string类中的一个类函数——size()

类中包含类函数。

调用类函数的方法:对象名.函数名()

size类函数用于返回字符串的长度

例:获取str1的长度

int a = str1.size();     //将str1的长度(元素个数)赋值给a

也可以对连接后的字符串使用,获得连接后字符串的长度

(str1 + str2 ).size();

我理解是str1 + str2的记过还是string类对象,这句话等效于

string str3 = str1 + str2;

str3.size();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息