/*已知有如下 string 对象: 
9.39:
 string line1 = "We were her pride of 10 she 
named us:"; 
 string line2 = "Benjamin, Phoenix, the 
Prodigal" 
 string line3 = "and perspicacious pacific 
Suzanne"; 
 string sentence = line1 + ' ' + line2 + ' ' + 
line3; 
编写程序计算 sentence 中有多少个单词,并指出其中
最长和最短的单词。如果有多个最长或最短的单词,则
将它们全部输出。*/

int main(void)
{
    string line1 = "We were her pride of 10 she named us : ";
        
    string line2 = "Benjamin, Phoenix, the     Prodigal";
    
        string line3 = "and perspicacious pacific     Suzanne";
    
        string sentence = line1 + ' ' + line2 + ' ' + line3;
        cout<<sentence.c_str()<<endl;
        int num = 0, count = 0; string strs; vector<char> str; vector<string>strss;
        while (num< sentence.size())
        {
            if (isalnum(sentence.c_str()[num]))
            str.push_back(sentence.c_str()[num]);

if (isalnum((sentence.c_str()[num++])) && !isalnum((sentence.c_str()[num])))//非字母做运算
            {
                
                count++;
                
            }
        }
        strs.assign(str.begin(), str.end());
        string::size_type pos = 0, pos1 = 0; vector<char>str1; string strs1; vector<string>strss1;
        while ((pos = sentence.find_first_not_of(strs, pos)) != string::npos)
        {
            for (pos1; pos1 < pos; pos1++)
                if (isalnum(sentence[pos1]))
                    str1.push_back(sentence[pos1]);//计算字串做单词
            strs1.assign(str1.begin(),str1.end());//复制字符串到string对象
            strss1.push_back(strs1);//入栈string对象到string容器
            str1.erase(str1.begin(), str1.end());//清除前面多余字符串
            pos1 = pos;//定位到下个单词
            ++pos;//定位到下个坐标    
        }
        vector<int> value;
        for (int i = 0; i < strss1.size(); i++)
        {
            value.push_back(strss1[i].size());
        }
        int max = value[0], min = value[0];
        for (int i = 1; i < value.size(); i++)
        {
            if (max < value[i])
                max = value[i];
            if (min > value[i]&&value[i]!=0)
                min = value[i];
        }
        
        //for (size_t i = 0; i != value.size(); i++)
        //{
        //    cout << strss1[i];
            //cout << value[i] << endl;
        //}
    
        cout << "最短单词有:" << endl;
        for (int i = 0; i < value.size(); i++)
        {
            
            if (strss1[i].size() == min)
            {
                cout << strss1[i]<<'\t';
            }
        }
        cout << endl<<"最长单词有:" << endl;
        for (int i = 0; i < value.size(); i++)
        {

if (strss1[i].size() == max)
            {
                cout << strss1[i] << '\t';
            }
        }
        cout << endl<<"sentence拥有" << count << "单词";
    return 0;
}

编写程序计算 sentence 中有多少个单词,并指出其中最长和最短的单词。如果有多个最长或最短的单词,则将它们全部输出。相关推荐

  1. C语言学习之分别用while、for 编写程序,计算2*4*6*......*100的值

    分别用while.for 编写程序,计算246*-*100的值 for语句 #include <stdio.h> void main(){int x,multiply=1;for(x=1; ...

  2. C语言学习之分别用while、for 编写程序,计算1+2+3+......+100的值

    分别用while.for 编写程序,计算1+2+3+-+100的值 for语句 #include <stdio.h> void main(){int x,add=0;for(x=1;x&l ...

  3. 编写python程序、计算账户余额_小明有20w存款存在余额宝中,按余额宝年收益为3.35%计算,用Python编写程序计算,多少年后小明的存款达到30w?...

    [判断题]卤素灯泡是在灯泡内充入氟.氯等卤素气体. [单选题]我国刑法第12条关于溯及力的规定采取的是( ). [填空题]本地局域网 LAN 内, () 和无绳电话速率较低,主流带宽是 100kbps ...

  4. j1_8。实现打折功能关键算法。编写程序计算购买图书的总金额。

    j1_8_01 编写程序计算购买图书的总金额:用户输入图书的定价和购买图书的数量,并分别保存到一个 float 和一个 int 类型的变量中,然后根据用户输入的定价和购买图书的数量,计算购书的总金额并 ...

  5. c语言for循环1到100奇数和,使用for循环结构编写程序计算1到100之间的奇数之和、偶数之和,输出格式为“1到100奇数和=xxx;1到100偶数和...

    题目: 使用for循环结构编写程序计算1到100之间的奇数之和.偶数之和,输出格式为"1到100奇数和=xxx:1到100偶数和=xxx". 解答: int jishuhe = 0 ...

  6. 编写程序计算圆的面积和周长

    # 学习目标: 编写程序计算圆的面积和周长 学习内容: c语言练习每日一练 编写程序计算圆的面积和周长.已知pi定义为3.14. **输入格式要求:"" 提示信息:"请输 ...

  7. 根据火车的出发时间和到达时间,编写程序计算整个旅途所用的时间。比如G198次列车从青岛站出发时间为16:00,到达北京南站的时间为20:40,则整个旅途所用时间为04:40。

    题目描述 根据火车的出发时间和到达时间,编写程序计算整个旅途所用的时间.比如G198次列车从青岛站出发时间为16:00,到达北京南站的时间为20:40,则整个旅途所用时间为04:40.题目保证出发时间 ...

  8. 问题 E: 1.10 旅行时间  根据火车的出发时间和到达时间,编写程序计算整个旅途所用的时间。

    问题 E: 1.10 旅行时间 时间限制: 1 Sec 内存限制: 128 MB 提交: 8001 解决: 4162 [提交] [状态] [讨论版] [命题人:fuwx] 题目描述 根据火车的出发时间 ...

  9. 根据火车的出发时间和到达时间,编写程序计算整个旅途所用的时间。

    [题目描述] 根据火车的出发时间和到达时间,编写程序计算整个旅途所用的时间.比如G198次列车从青岛站出发时间为16:00,到达北京南站的时间为,则整个旅途所用时间为4:40.输入格式仅一行,包含2个 ...

最新文章

  1. python中元组_理解python中的元组
  2. 我的世界服务器老是显示已断开,为什么我的服务器玩家老是掉线 - 有问必答 - 最MC论坛 - 我的世界_Minecraft_联机_服主_资讯_MOD_皮肤_交流_作品_中文论坛...
  3. Java的native关键字
  4. 【笔记】opencv图像运算 图像加密
  5. linux调小根目录,Linux根目录分区大小调整教程
  6. 【Time系列一】datetime的妙用
  7. broker可以禁用吗 time_Win8.1系统Runtime Broker是什么进程?可以禁用吗?
  8. python 声音合成_使用python进行声音生成/合成?
  9. 计算机组成原理4(程序查询方式、程序中断方式、DMA方式及其I/O接口电路)
  10. 常见Linux版本概览
  11. c语言宠物管理系统,请用C语言编出一个简单的宠物管理系统。
  12. matlab中或者的表达,MATLAB
  13. 千峰JAVA逆战班Day33
  14. 跟计算机相关的商标类别,一体电脑商标注册属于第几类?
  15. ajax 传递对象 返回状态500
  16. 输入虚拟手机服务器地址,输入服务器url地址
  17. 李一男离开华为时给属下的忠告
  18. 解决 ros 16.04找不到公钥的问题
  19. 浙大计算机科学与技术专业课表,周亚金 - 浙江大学 - 计算机科学与技术
  20. 使用 js 实现累乘之和

热门文章

  1. chrome postman插件_一款 Postman 的开源替代品: Postwoman
  2. DIY逗比的时钟,制作资料100%开源!
  3. PCB工程师的7个好习惯
  4. Linux系统如何测试电脑性能,如何使用DD命令测试Linux磁盘的性能?
  5. 自己动手写CPU(3)逻辑、移位操作与空指令
  6. 新闻发布系统类图_如何熟悉一个系统?(内含知识大图)
  7. python写一个自动登录脚本_Python 实现自动登录+点击+滑动验证功能
  8. 外架小横杆外露长度规范要求_脚手架各部位构造要求解读!
  9. 01初识鸿蒙_移动通讯技术的发展
  10. php获取本月工作日,ThinkPHP中获取指定日期后工作日的具体日期方法