istringstream类用于执行C++风格的串流的输入操作;
ostringstream类用于执行C风格的串流的输出操作;
strstream类同时可以支持C风格的串流的输入输出操作;
istringstream的构造函数原形如下:
istringstream::istringstream(string str);
它的作用是从string对象str中读取字符。
示例,
#include<iostream>
#include<sstream> //istringstream 必须包含这个头文件
#include<string>
using namespace std;
int main()
{
string str1="I am a baby";
istringstream is(str1);
string s;
while(is>>s)
{
cout<<s<<endl;
}
}
C++默认通过空格(或回车)来分割字符串输入,即区分不同的字符串输入;但是有时候,我们得到的字符串是用逗号来分割的,给使用带来不便;
解决方法,
第一步:接收字符串 s ;
第二步:遍历字符串 s ,把 s 中的逗号换成空格;
第三步:通过 istringstream 类重新读取字符串 s ;
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(){
string s = "I,am,a,little,baby";
int n = s.size();
for (int i = 0; i < n; ++i){
if (s[i] == ','){
s[i] = ' ';
}
}
istringstream out(s);
string str;
while (out >> str){
cout << str <<' ';
}
cout << endl;
}