解题思路:1.接受带空格字符串,C++getline()可以接受带空格字符串
              2.利用STL的set集合 存储字符串类型的元素,  集合特点:  有序,不重复!

             3.stringstream临时存储输入的一行字符串,然后逐个流向要处理的字符串
注意事项:
           特别注意!! 如果不用stringstream  ,用 while(cin>>str) 会出问题,因为 后面一堆空格,没法停止!
参考代码:

#include<iostream>
#include<set>
#include<sstream> 
using namespace std;
int main(){
   string str;
   string s1;
   getline(cin,str);   //可以接受到空格的字符串 
   stringstream ss(str);  //字符串流临时存储字符串 
   set<string> s;    //该集合存储的数据类型定义成string 
   while(ss>>s1){  //从字符串流里流入这个字符串 
   s.insert(s1);  //一个个添加到set集合 
   }
   cout<<s.size();  //集合的元素 就是本题所求的不重复的个数 
return 0;
}

 

点赞(2)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论