1.赋值
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
char ss[100];
s="hello,C++STl";
cout<<s<<endl;
scanf("%s",ss);//scanf的输入速度比cin要快得多,但是它是c语言的函数,不支持sring对象;另外,ss前面加不加&无所谓
s=ss;
cout<<s<<endl;
return 0;
}
2.追加
#include<string>
#include<iostream>
using namespace std;
int main() {
string s;
s="1234";
cout<<s<<endl;
s+="a";
cout<<s<<endl;
s+="56";
cout<<s<<endl;
s.append("bc");
cout<<s<<endl;
return 0;
}
3.插入
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="12345";
s.insert(s.begin()+1,'a');
cout<<s<<endl;
string::iterator it;
it=s.begin();
s.insert(it+1,'b');
cout<<s<<endl;
return 0;
}
4.删除
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="abc123456";
string::iterator it;
it=s.begin();
s.erase(it+3);
cout<<s<<endl;
s.erase(it,it+4);
cout<<s<<endl;
s.clear();
cout<<s.length()<<endl;
return 0;
}
5.替换
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="abc123456";
s.replace(3,3,"good");//从第三个开始(即前三个不变),将连续的3个字符替换为"good" ,所被替换的字符数不必和要替换的字符数相等
cout<<s<<endl;
s.replace(2,1,"very");//从第二个开始(即前两个不变),将连续的1个字符替换为"very",所被替换的字符数不必和要替换的字符数相等
cout<<s<<endl;
return 0;
}
6.查找
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="cat dog cat";
cout<<s.find('c')<<endl;//找到的话就返回下标值
cout<<s.find("c")<<endl;
cout<<s.find("cat")<<endl;
cout<<s.find("dog")<<endl;
cout<<s.find("dogc")<<endl;//没找到的话就返回4294967295
return 0;
}
7.比较
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="cat dog cat";
cout<<s.compare("cat")<<endl;//compare()函数是按字典序比较大小的 ,若s比compare()中大,返回大的位数 (8)
cout<<s.compare("cat dog")<<endl;//若s比compare()中大,返回大的位数(4)
cout<<s.compare("cat doa")<<endl;//返回1(非零值)
cout<<s.compare("cat dog cat")<<endl;
cout<<s.compare("dog")<<endl;
cout<<(s>"cat dog")<<endl;//亦可以直接用<和>来比较!
return 0;
}
8.倒置
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
string s;
s="123456789";
reverse(s.begin(),s.end());
cout<<s<<endl;
reverse(s.begin()+2,s.end()-1);
cout<<s<<endl;
return 0;
}
9.string类型的向量
#include<vector>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
vector<string> v;
v.push_back("Jack");
v.push_back("Mike");
v.push_back("Tom");
cout<<v[0]<<endl;
cout<<v[1]<<endl;
cout<<v[2] <<endl;
cout<<v[0][0]<<endl;
cout<<v[1][0]<<endl;
cout<<v[2].length()<<endl;
return 0;
}
10.sscanf函数和sprintf函数
#include<string>
#include<iostream>
using namespace std;
int main()
{
char b[10];
string a;
sprintf(b,"%d",1975);//sprinf函数注重前面,故而是将后面的输入到前面的
a=b;
cout<<a<<endl<<a.length()<<endl;
sscanf("1997","%s",b);//sscanf函数注重后面,故而是将前面的输入到后面的
a=b;
cout<<a<<endl<<a.length()<<endl;
return 0;
}