用stringstream 来处理。
#include<bits/stdc++.h>
using namespace std;
int main(){
//int 转 string
int number = 12;
string str;
stringstream ss;
ss<<number;
ss>>str;
cout<<str<<endl;
//注意,此时这个流ss中还保存之前流入的数据
ss.clear();//清空流中的数据
//string 转 int
string str2 = "13";
int num;
ss<<str2;
ss>>num;
cout<<num<<endl;
return 0;
}
stringstream流也可以根据某个标志将一串字符串分开。
举例:
Hello World Here I Come
输出:Come I Here World Hello
在这里就可以用stringstream流依据空格将字符串分开,然后将分开的每个单词存入数组,再将数组的每个元素倒序输出。
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
int len=s.length();
vector<string> ve;
string ans;
stringstream l;
l<<s;
while(l>>ans){
ve.push_back(ans);
}
for(int i=ve.size()-1;i>=0;i--){
cout<<ve[i]<<" ";
}
return 0;
}
stringstream 应用2:
字符串分割
//无论以 , . / " " 来分割都可以
#include<bits/stdc++.h>
using namespace std;
int main(){
string path="2020.7.7";
stringstream is(path);//这里也可以写成 is>>path
string tmp;
while(getline(is,tmp,'.')){
cout<<tmp<<" ";//2020 7 7
}
return 0;
}