C++string(字符串)总结

string是在C++标准模板库中的数据类型,string类型的对象用来存放字符串,且不用担心字符串越界问题,头文件为<string>

1、定义string对象

string 变量名;

 (1)

string s1,s2;  //定义对象s1,s2,没有初始化,

string s3="hello"  //定义对象并初始化

cin>>s1>>s2;   //输入:abc defg

cout<<s1<<' '<<s2<<' '<<s3<<endl;  //输出:hello abc defg

(2)string对象数组的定义

string str1[]={"ab","abc"};   //等同于string str1[2]={"ab","abc"}; 

string str2[3]; //如果不初始化,必须指定string对象数组的长度;

cin>>str2[0]>>str2[1]>>str2[2];  //输入: a bc defg

cout<<str1[1]<<str2[0]<<endl; 输出:abc a

2、string对象字符串的长度

string s="abcd"

string ch[2]={"ac","abc"};

int s_size=s.size(); //或int s_size=s.length(),表示字符串s的长度

int ch[0]_size=ch[0].size(); //字符串数组ch[0]的长度

printf("s_size=%d,ch[0]_size=%d",s_size,ch[0]_size);

3、string 对象运算

string 对象之间可以用 <、<=、==、>=、> 运算符进行比较,还可以用+将两个 string 对象相加、将一个字符串常量和 string 对象相加、将一个字符数组和 string 对象相加,相当于进行字符串连接。+=运算符也适用于 string 对象。string 对象在比较大小时是按词典序比较的,而且是大小写相关的。由于大写字母的 ASCII 码小于小写字母的 ASCII 码('A' ~ 'Z' 的 ASCII 码是 0x41 ~ 0x5a,'a' ~ 'z' 的 ASCII 码是 0x61 ~ 0x7a),所以 Zbc 比 abc 小。此外,string 对象还可以通过[]运算符和下标存取字符串中的某个字符。例如: 

string s1 = "123", s2 = "abc11", s3;  //s3是空串,s3==""
s3 = sl + s2;  //s3 变成"123abc"
s3 += "de";  //s3 变成"123abcde"
bool b = s1 < s3;  //b 为 true
char c = s1[2];  //c变成'3'(下标从0开始计算)
s1[2] = '5';  //s1 变成”125"

4、string取子字符串

string s="abcd"

string s1=s.substr(1,2); //取字符串s从下标1开始,长度为2的子字符串,即s1="bc";

5、string类型字符串转换为char类型字符串

string ss="abcd"

char ch[10];

strcpy(ch,ss.c_str());  //c_str()函数把string类型字符串转换为char类型字符串,然后复制到char类型字符串数组中;

猜你喜欢

转载自blog.csdn.net/clz16251102113/article/details/83958905