C++标准库类型string

  1. 初始化方式
  2. 运算
  3. string::size_type类型
  4. 基于范围for语句的操作
  5. 下标运算

初始化方式

1
2
3
4
5
string s1; //默认初始化为空字符串
string s2 = s1; //s2为s1副本
string s3 = "asd"; //s3位字符串字面值的副本
string s32("asd"); //与s3声明方式等价
string s4(10,'c'); //s4内容为cccccccccc

运算

string类型支持 “+” “==” 运算符,”==”运算对字母的大小写敏感

两个string对象可以进行相加,结果为两个string对象连接

string对象还可以与字面值相加 例如 : s2 = s2 + “,” + s1 + ‘\n’;

“+”两边至少有一个是string类型

使用getline(is,s)从is中读取一行赋给s

string::size_type类型

string类的size函数返回类型为string::size_type. C++11允许通过auto或decltype推断类型.

需要注意的一点是如果在表达式中遇到了int与unsigned混用 例如s.size() < n 其结果恒为true.

基于范围for语句的操作

例如统计标点符号

1
2
3
4
5
6
7
8
string s("Hello World!!!");
decltype(s.size()) punct_cnt = 0;

for(auto c : s){
if(ispunct(c))
++punct_cnt;
}
cout << punct_cnt << endl;

改变字符串中的字符

1
2
3
4
5
string s("Hello World!!!");

for(auto &c : s)
c = toupper(c);
cout << s << endl;

下标运算

string对象下标的返回值是对该位置上字符的引用

[]接受的参数是string::size()_type

script>