string s;
s.erase(2,4)删除 下标为2,长度为4的字符串
s.empty()判断是否为空
s.substr(0,5)子序列 从第0位开始的长度为5的字符串
s.replace(0,2,"VK") 用"VK"代替从坐标0开始的连续2个的字符串
s.find()查找 函数返回 在 str中第一次出现下标的位置
s.length()计算序列长度
cin.getline(s,sizeof(s));例如gets类的输入 string str; getline(cin,str);
sort(s.begin(),s.end())排序
string 作为容器
string str;
str.push_back('q');压入
string::iterator itstr = str.begin();
for( ;itstr!=str.end; itstr++)
cout<<*itstr;
sort(str.begin(),str.end);排序
int main()
{
ios_base::sync_with_stdio(0);cin.tie();
用于cin,cout的加速
}
#include <iostream>
#include <sstream>
using namespace std;
int main()
{ /*
*数字向字符转换
*/
string s1;
int s2;
stringstream s3;
cin >> s2;
s3 << s2;
s3 >> s1;
cout << s1 <<endl;
/*
*字符向数字转换
*/
string s1;
int s2;
stringstream s3;
cin >> s1;
s3 << s1;
s3 >> s2;
cout << s2 <<endl;
return 0;
}
如果你打算在多次转换中使用同一个stringstream对象,记住再每次转换前要使用clear()方法;
在多次转换中重复使用同一个stringstream(而不是每次都创建一个新的对象)对象最大的好处在于效率。stringstream对象的构造和析构函数通常是非常耗费CPU时间的。
#include <iostream>
#include <sstream>
using namespace std;//字符串中间有空格,一整行处理
int main()
{ stringstream ss;
string s, a, b, c;
getline(cin,s); == cin.getline(s,1000,'\n');
ss.str(s);//将指定字符串射成一开始内容
ss >> a >> b >> c;
cout << a << " " <<b << " " << c << endl;
return 0;
}
#include <iostream>
#include <sstream>
#include <cstring>
#include <string>
#include <cstdio>
using namespace std;
int main()
{
/*
*string转换到char
*/
/*string a;
char b[100];
cin >> a;
strcpy(b,a.c_str());
printf("%s",b);
/*
* char转换到string
*/
string a;
char b[100];
scanf("%s",b);
a = b;
cout << a << endl;
return 0;
}
string s1;
int a = 6;
string str = s1 + std::to_string(a);由数字转向字符