String类型支持长度可变的字符串,需要包含头文件#include<string>
1、string对象的定义和初始化
string支持好几种初始化方式:
初始化方式 |
说明 |
String s1; |
默认构造函数,s1是空串 |
String s2(s1) |
将s2初始化为s1的一个副本 |
String s3(“value”) |
将s3初始化为一个字符串字面值的副本 |
String s4(n, ‘c’) |
将s4初始化为字符’c’的n个副本 |
C++ primer4标注:字符串字面值和标准库string类型不是同一种类型
2、string对象上可以进行的操作
可执行的操作(string s) |
操作说明 |
s.empty() |
判断s是否为空串,若为空,返回true |
s.size() |
返回s中字符的个数 |
S[n] |
返回s中位置为n的字符,位置从0开始 |
S1+s2 |
字符串连接,可以用+操作符 |
S1=s2 |
字符串拷贝,将s1内容替换成s2的副本 |
V1==v2 |
比较v1与v2的内容,相等则返回true |
!=,<,<=,>和>= |
保持这些操作符惯有的含义 |
3、string类型的其他操作
Ø 可以用cin>>str从命令端读入字符串,是以空格分开读入的
Ø 可以用cout<<str输出字符串到命令端
Ø 可以用getline(cin,str)从命令端读入一行字符串,包括空格也会读入
Ø 循环遍历string的时候,下表值不要用Int类型,因为string的内置的长度函数size()返回的是string::size_type类型,这是一个unsingned类型,在有的机器上,int类型的范围太小了,因此需要这样遍历string,
For(size_type i=0; i<str.size(); i++)
Ø 可以用str[i]=’x’这样的方式,将str的某一位覆盖掉新值