C++中的istringstream 的用法 HDU 2072单词数

来源:互联网 发布:java中json数组遍历 编辑:程序博客网 时间:2024/06/06 04:43

C++中的istringstream 的用法 

今天看到了一个比较有用的c++的输入输出控制类。C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。
                           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 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;}



0 0
原创粉丝点击