1. string 类
1 string 对象的初始化
- string 类是模板类:
typedef basic_string <char> string;
- 使用 string 类要包含头文件 <string>
- string 对象的初始化:
string s1(\"MARCH\");
string s2 = \"APRIL\";
string s3(8,\'x\');
- 错误的初始化方法:(不能通过一个字符和一个整数来初始化 sstring)
string error1 = \'c\';
string error2(\'u\');
string error3 = 22;
string error4(8);
- 可以将字符赋值给 string 对象。但不能用字符初始化 string 对象。
string s;
s = \'n\';
- string 对象的长度用成员函数 length() 读取
string s(\"hello\");
cout << s.length() << endl;
- string 支持流读取运算符
string stringObject;
cin >> stringObject;
- string 支持 getline 函数
string s;
getline(cin , s);
2 string 对象的赋值和连接
- 用 “=” 赋值
string s1(\"cat\");
string s2;
s2 = s1;
- 用 assign 成员函数复制
string s1(\"cat\");
string s3;
s3.assign(s1);
- 用 assign 成员函数部分复制
string s1(\"catpig\");
string s3;
s3.assign(s1,1,3);
//从 s1 中下标为1的字符开始复制3个字符
- 单个字符复制
s2[5] = s1[3] = \'a\';
- 逐个访问 string 对象中的字符
string s1(\"Hello\");
for(int i=0;i<s1.length();i++)
cout << s1.at(i) << endl;
成员函数 at 会做范围检查,如果超出范围,会抛出 out_of_range 异常,而下标运算符 [ ] 不做范围检查。
- 用 “+” 运算符连接字符串
string s1(\"good\");
string s2(\"morning!\");
s1 += s2;
cout << s1;
- 用成员函数 append 连接字符串
string s1(\"good\");
string s2(\"morning!\");
s1.append(s2);
cout << s1;
s2.append(s1,3,s1.size()); //s1.stze(),s1字符数
//下标为3开始,s1,size()个字符,如果字符串内没有足够字符,则复制到字符串最后一个字符
cout << s2;
3 比较 string 对象
- 用关系运算符比较 string 大小:==,>,>=,<,<=,!= 。返回值都是 bool 类型,成立返回 true,否则返回 false。
- 用compare 成员函数比较 string 对象的大小。
string s1(\"hello\"),s2(\"hello\"),s3(\"hell\");
int f1 = s1.compare(s2);
int f2 = s1.compare(s3);
int f3 = s3.compare(s1);
int f4 = s1.compare(1,2,s3,0,3);//s1:1-2; s3:0-3
int f5 = s1.compare(0,s1.size(),s3); //s1:0-end
cout << f1 << endl << f2 << endl << f3 << endl << f4 << endl << f5 << endl;
//输出:0 // hello == hello
// 1 // hello > hell
// -1 // hell < hello
// -1 // el < hell
// 1 // hello > hell
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



