常用的string函数库
1.字符长度( length(); size(); )
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
cout<<a.length()<<endl;
cout<<a.size()<<endl;
}
2.容量
capacity(); 反应当前内存块儿的大小
reserve(); 能够将容量值变大,但不会变小
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
cout<<a.capacity()<<endl;
a.reserve(6);
cout<<a.capacity()<<endl;
a.reserve(3);
cout<<a.capacity()<<endl;
}
3.输出或修改某单个字符(at();)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
cout<<a.at(0)<<endl;
a.at(0)='T';
cout<<a<<endl;
}
4.输出全部字符(c_str();)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
getline(cin,a);
cout<<a.c_str()<<endl;
}
5.插入函数
append();从末尾插入
insert();从任意位置插入
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
a.append(" Anna");
cout<<a<<endl;
a.insert(0,"??");
cout<<a<<endl;
}
**6.**赋值函数(assign();)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1;
getline(cin,s1);
s1.assign("what???",5);
cout<<s1<<endl;
}
7.比较字符串大小(compare();)
整串字符串进行比较
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1,s2;
cin>>s1>>s2;
cout<<s1.compare(s2)<<endl;
}
结果:s1=s2,return 0; 若s1>s2,return 1; 若s1<s2,return -1。
部分与整串比较或部分与部分比较
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1;
cin>>s1;
cout<<s1.compare(1,2,s1)<<endl;//前两个字符组成的字符串和整个字符串比较
cout<<s1.compare(1,2,s1,1,2,3)<<endl;//前两个与后两个比较
}
8.复制函数(copy();)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str1;
cin>>str1;
char a[10]={0};
str1.copy(a,4,0);
//4表示选取的个数,0是位置下标
cout<<a<<endl;
}
9.查找函数(find();)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
getline(cin,a);
cout<<(int)a.find("A")<<endl;//找到返回第一个字符下标,若没有找到返回-1
}
10.返回字符串(substr)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
getline(cin,a);
cout<<a.substr(1,3)<<endl;//返回从1位置开始的三个字符
}
11.删除字符函数(erase();)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
getline(cin,a);
cout<<a.erase(1,3)<<endl;//删除从1位置开始的三个字符
}
12.替换函数(replace();)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
getline(cin,a);
cout<<a.replace(0,2,"an")<<endl;//前两个替换
}