string类方法汇总
构造函数 产生或复制字符串
析构函数 销毁字符串
=、assign 赋予新值
swap 交换字符串
+=、append()、push_bash() 添加字符
insert() 插入字符
erase() 删除字符
clear() 移除全部字符
resize() 改变字符数目
replace() 替换字符
size()、length() 返回字符数目
max_size() 返回字符的最大可能个数
empty() 判断字符串是否为空
capacity() 返回重新分配前的字符容量
reserve() 保留内存以存储的一定数量字符
[]、at(n) 存取单一字符
>>、getline() 从stream读取某值
copy() 复制字符串
c_str() 将内容复制成char*
data() 将内容以字符串形式返回
substr() 返回子字符串
find() 查询子字符串或字符
begin()、end() 提供正向迭代器支持
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str("12345678");
char ch[]="abcdefgh";
string a;
string str1(str); //全复制
string str2(str,2,5); //从第2个复制到第5个
string str3(ch,5); //复制前5个元素
string str4(5,'X'); //复制5个'XXXXX'
string str5(str.begin(),str.end()); //全复制
cout<<endl;
//大小和容量
string str_num("12345678");
cout<<"size="<<str_num.size()<<endl;
cout<<"length="<<str_num.length()<<endl;
cout<<"maxsize="<<str_num.max_size()<<endl;
cout<<"capacity="<<str_num.capacity()<<endl;
cout<<endl;
///访问
string s("abcde");
char& r = s[2];
char* p = &s[3];
r = 'X';
*p = 'Y';
cout<<s<<endl;
cout<<endl;
比较
string A("aBcdef");
string B("AbcdEf");
cout<<A.compare(B)<<endl; //完全对比
cout<<A.compare(1,5,B)<<endl; //Bcdef和bcdEf
cout<<A.compare(1,5,B,4,2)<<endl; //Bcdef和Ef
cout<<A.compare(2,2,B,2,2)<<endl; //cd和cd
cout<<endl;
/assign()
string ss1("12345678");
string ss2;
ss2.assign(ss1);
cout<<ss2<<endl;
ss2.assign(ss1,3,3);
cout<<ss2<<endl;
ss2.assign(ss1,2,ss1.npos);
cout<<ss2<<endl;
ss2.assign(5,'X');
cout<<ss2<<endl;
ss2.assign(ss1.begin(),ss1.end());
cout<<ss2<<endl;
cout<<endl;
erase()
string s_erase("12345678");
s_erase.erase(3); //删除第3个以后字符
cout<<s_erase<<endl;
string s_erase1("12345678");
s_erase1.erase(3,2); //删除第3个以后的两个字符
cout<<s_erase1<<endl;
cout<<endl;
//insert()
string s_insert1("ello");
string insert1("H");
insert1.insert(1,s_insert1);
cout<<insert1<<endl;
insert1="H";
insert1.insert(1,"yanjhj",3);
cout<<insert1<<endl;
insert1="H";
insert1.insert(1,A,2,2);
cout<<insert1<<endl;
insert1="H";;
insert1.insert(1,5,'c');
cout<<insert1<<endl;
cout<<endl;
//append()
string s_append("ello");
string append1("H");
append1.append(s_append);
cout<<append1<<endl;
append1="HHH";
append1.append("123456",1,3);
cout<<append1<<endl;
append1="H";
append1.append(10,'a');
cout<<append1<<endl;
cout<<endl;
//repalce()
string var("abcdefg");
string re("123");
var.replace(3,3,re);
cout<<var<<endl;
var = "abcdefg";
re = "1234";
var.replace(3,1,re.c_str(),1,3);
cout<<var<<endl;
var = "abcdefg";
var.replace(3,1,5,'X');
cout<<var<<endl;
cout<<endl;
/find()
string s_find("today,w will go to swing!");
int num = s_find.find('w',9); //从第9个字符开始搜索
cout<<num<<endl;
num = s_find.find('w',0); //逆向搜索
cout<<num<<endl;
return 0;
}