uva 10815 Andy's First Dictionary (STL之set)

本文介绍了一个使用 C++ 编写的程序,该程序可以接收一段英文输入,并将其内的所有单词按字母顺序进行排序输出。通过使用标准模板库 STL 中的 set 容器来保证输出单词的唯一性和有序性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将一段英文中的每个单词按首字母顺序输出。每个字母占一行。

#include<bits/stdc++.h>
/*
set 的使用教程
*/ 
using namespace std;  
set<string> dict;  
int main ()  
{  
    string s,buf;  
    while (cin >> s)  
    {  
        int i;  
        for(i=0;i<s.size();i++)  
        {  
            if(isalpha(s[i])) //判断是否为字母  类似的函数还有isupper islower isdigit   
            s[i]=tolower(s[i]);      //将字母转化成小写   类似的还有toupper   
            else s[i]=' '; //此处将不是字母的都转化为空格 而stringstream会滤掉空格 最后只会剩下单词   
        }  
        stringstream ss(s);  
        //ss>>buf;    不能写成这样  因为有可能在单词前面有标点 而在上面被转化成了空格就无法读入单词,还是应该用while将流中的东西读干净~   
        while(ss >> buf)  
        dict.insert(buf);     //插入到set中 set保证里面的元素不重复   
    }  
   set<string>::iterator it;   //此处为STL中的迭代器。。 要记住用法.begin()  .end()   
    for( it=dict.begin();it!=dict.end();it++)  
    cout << *it << endl;  
    return 0;  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值