string类包含于<string>头文件中。
一、构造方法:
string s("..."); //...为c-stlye-string
string s(20, '.'); //20个.
string s(chr, 20); //(char*)chr,chr的前20个字符
string s(p1, p2); //[p1, p2)地址区间
string s(str, 7, 16); //(string)str,str的7到16个字符
string s; //默认构造函数
string s(str); //复制构造函数
二、部分特性:
string类的全部6个算数operator全部被以三种方式(char*,string&,(friend)char*)重载。因此string对象的+=相当于strcpy()和strcat()组成的字符串拷贝功能。
cin.getline()不能用于string对象,而getline()却可以用于string对象,并自动调整输入大小。
三、部分类方法:
①返回字符数:
string str;
str.size(); //返回字符数
str.length(); //返回字符数
②查找字符:
string str;
str.find(); //第一次出现的索引
str.rfind(); //最后一次出现的索引
str.find_first_of(); //第一次出现的索引
str.find_last_of(); //最后一次出现的索引
str.find_first_not_of(); //第一个不是...的索引
str.find_last_not_of(); //最后一个不是...的索引
//查找字符一族方法全部被以三种方式重载:
string s;
s.find(str,n); //从第n个字符开始找子字符串str,str可以是string或char*
s.find(chr,n,i); //从第n个字符开始找子字符串chr的前i个字符,chr为char*
s.find(ch,n); //从第n个字符开始找字符ch
③转换为c-style-string:
string str;
str.c_str(); //输出为c风格字符串
④查看string使用的heap区内存大小:
string str;
str.capacity(); //查看当前分配给string对象的内存块大小