C++中的istringstream 的用法
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。
istringstream::istringstream(string str);
它的作用是从string对象str中读取字符。
#include<iostream>
#include<sstream> //istringstream 必须包含这个头文件
#include<string>
using namespace std;
int main()
{
string str="i an a boy";
istringstream is(str);
string s;
while(is>>s)
{
cout<<s<<endl;
}
}
输出是:
i
an
a
boy
HDU 2070
我的复杂代码是:
#include<iostream>
#include<set>
#include<string>
using namespace std;
int main()
{
set<string> se;
string tempstr,str;
while (getline(cin,str) && str != "#")
{
tempstr = "";
se.clear();
for (int i = 0; i < str.length(); i++)
{
if(str[i] == ' ')
{
if(tempstr != "")se.insert(tempstr);
tempstr = ""; //注意将字符串清空
}
else
{
tempstr += str[i];
}
}
if(tempstr != "")se.insert(tempstr);
cout<<se.size()<<endl;
}
return 0;
}
简短代码是:
#include<iostream>
#include<string>
#include<set>
#include<sstream>
using namespace std;
int main()
{
string str,w;
set<string>se;
while(getline(cin,str) && str != "#")
{
se.clear();
istringstream is(str);
while (is>>w)
se.insert(w);
cout<<se.size()<<endl;
}
return 0;
}