目录
stringstream介绍
在C++中,std::stringstream是一个用于字符串流处理的类,它可以将一个字符串转换为流对象,然后使用流操作符(<<、>>)进行输入输出操作。可以使用std::stringstream类将一个字符串分割成多个数据并进行处理。
当使用以下代码创建一个std::stringstream对象时
cpp
std::stringstream ss(s);
其中,s是一个字符串,该代码会将字符串s转换为一个std::stringstream对象,从而可以使用流操作符(<<、>>)对该对象进行输入输出操作。stringstream ss中的ss只是一种变量而已,你可以随便写一个;初始化就是stringstream(line),line就是string类型的变量;在后面对stringstream赋值就是ss<<line;将stringstream导出就是ss>>line;
stringstream应用
1.转换类型
cpp
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string line;int x;
while (getline(cin, line))
{
stringstream ss;
ss << line;//赋值
ss >> x;//导出
cout << x << endl;
}
return 0;
}
可以直接将字符转成数字,例:字符'1'直接变成1;学过c的都知道字符变成数字要减去相应的ASIIC码,但c++不需要。
2.数据切分
cpp
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string line;int x;
while (getline(cin, line))
{
int sum = 0;
stringstream ss;
ss << line;
while (ss >> x)//ss >> x就像是cin>>一样遇到空格就停止输入
sum += x;
cout << sum << endl;
}
return 0;
}
3.选择特定符号进行数据分割
cpp
#include<iostream>
#include<cstring>
#include<sstream>
using namespace std;
int main()
{
string s;
cin >> s;
stringstream ss(s);
while (getline(ss, s, '/'))
{
cout << s << " ";
}
return 0;
}