C++中的istringstream 的用法 HDU 2072单词数
2016-08-05 15:48
337 查看
C++中的istringstream 的用法
今天看到了一个比较有用的c++的输入输出控制类。C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。
istringstream的构造函数原形如下:
istringstream::istringstream(string str);
它的作用是从string对象str中读取字符。
[cpp] view
plain copy
#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
我的复杂代码是:
[cpp] view
plain copy
#include<iostream>
#include<set>
#include<string>
using namespace std;
int main()
{
set<string> se;
string tempstr,str;
while (getline(cin,str) && str != "#")
{
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;
}
简短代码是:
[cpp] view
plain copy
#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;
}
今天看到了一个比较有用的c++的输入输出控制类。C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。
istringstream的构造函数原形如下:
istringstream::istringstream(string str);
它的作用是从string对象str中读取字符。
[cpp] view
plain copy
#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
我的复杂代码是:
[cpp] view
plain copy
#include<iostream>
#include<set>
#include<string>
using namespace std;
int main()
{
set<string> se;
string tempstr,str;
while (getline(cin,str) && str != "#")
{
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;
}
简短代码是:
[cpp] view
plain copy
#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;
}
相关文章推荐
- C++中的istringstream 的用法 HDU 2072单词数
- HDU 2072 单词数 -- C++ string set 统计不同的单词数目
- hdu 2072 单词数 - c++IO流 + set容器
- hdu2072单词数(c++ set集合的使用)
- hdu 2072 单词数(C++的stringstream对象)
- HDU 2072 单词数
- C++:istringstream 的用法
- hdu 2072 单词数统计 sscanf() 函数
- hdu 2072 单词数
- hdu 2072 单词数
- HDU 2072 单词数
- Hdu 2072 单词数
- hdu 2072 单词数
- hdu 题目2072 单词数 (字典树)
- hdu2072(不同单词数)
- HDU 2072 单词数
- hdu 2072-单词数
- HDU 2072 单词统计
- hdu 2072 单词数(map的简单应用)
- hdu 2072 找单词 很不错的一道题 模拟 and STL 2种做法