新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论高级C/C++编程、代码重构(Refactoring)、极限编程(XP)、泛型编程等话题
    [返回] 计算机科学论坛计算机技术与应用『 C/C++编程思想 』 → [求助]编一程序:使单词分开并使相同单词按字符串大小排列 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 14488 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]编一程序:使单词分开并使相同单词按字符串大小排列 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     jjtt5566 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:90
      门派:XML.ORG.CN
      注册:2006/6/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jjtt5566发送一个短消息 把jjtt5566加入好友 查看jjtt5566的个人资料 搜索jjtt5566在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jjtt5566的博客楼主
    发贴心情 [求助]编一程序:使单词分开并使相同单词按字符串大小排列

    麻烦各位大虾帮帮忙!!!最好用C/C++ 其他的也可以
    问题:编写一个程序,其功能是将用户输入的一段英文(注意:包含空格、逗号、句号、及英文字母)分离出单词,并以每个单词出现的次数从高到底输出单词及其次数。次数相同的单词以其对应字符串大小升序输出。
    例:Green is on the left,Red is on the Righe,the right is afraid of water,the left is afraid of insects.
    输出:is(4) the(4) afraid(2) left(2) of(2) on(2) right(2) Green(1) insects(1) Red(1) water(1)
    提示:(1)建立一函数用于接收输入的英文段落
    (2)建立字符串数组用于保存每次分离出的单词,及出现的次数(编一函数)
    (3)对字符串数组按规定进行排序(编一函数)

    本人邮箱:zeng-tianfeng@163.com 请大虾顺便发我邮箱里好吗?小弟急用!!!在此先谢谢大哥拉


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/14 0:34:00
     
     elfstone 帅哥哟,离线,有人找我吗?射手座1983-12-6
      
      
      等级:大四(总算啃完XML规范了)
      文章:185
      积分:1177
      门派:IEEE.ORG.CN
      注册:2006/2/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给elfstone发送一个短消息 把elfstone加入好友 查看elfstone的个人资料 搜索elfstone在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看elfstone的博客2
    发贴心情 
    坛子里以前有人发过这张贴,可以去找来看看

    ----------------------------------------------
    Ich liebe erst meines Leben...

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/14 12:57:00
     
     jjtt5566 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:90
      门派:XML.ORG.CN
      注册:2006/6/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jjtt5566发送一个短消息 把jjtt5566加入好友 查看jjtt5566的个人资料 搜索jjtt5566在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jjtt5566的博客3
    发贴心情 
    沙发,我找过了,找不到,你能够帮我写一下吗?我不会写这个程序。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/14 13:28:00
     
     jjtt5566 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:90
      门派:XML.ORG.CN
      注册:2006/6/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jjtt5566发送一个短消息 把jjtt5566加入好友 查看jjtt5566的个人资料 搜索jjtt5566在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jjtt5566的博客4
    发贴心情 
    哪位大哥会写啊?帮帮小弟吧,急用。。。
    以前本论坛也发过一帖,是5月26的,我找了,没人回答啊。哪位大哥会了一定要写出来哦,
    要不直接发我邮箱里吧:zeng-tianfeng@163.com
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/15 11:08:00
     
     jjtt5566 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:90
      门派:XML.ORG.CN
      注册:2006/6/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jjtt5566发送一个短消息 把jjtt5566加入好友 查看jjtt5566的个人资料 搜索jjtt5566在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jjtt5566的博客5
    发贴心情 
    提帖提帖,不然高手都看不到这个程序,高手快过来帮我写写,
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/15 18:21:00
     
     onlyxuyang 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:12
      积分:123
      门派:W3CHINA.ORG
      注册:2006/6/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给onlyxuyang发送一个短消息 把onlyxuyang加入好友 查看onlyxuyang的个人资料 搜索onlyxuyang在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看onlyxuyang的博客6
    发贴心情 
    一看楼主就是不思考型的
    我给个提示吧
    用一个map<string,int>记录单词已经对应的次数就可以了
    在扫描的时候以空格和逗号做为分割符
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/18 3:11:00
     
     jjtt5566 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:90
      门派:XML.ORG.CN
      注册:2006/6/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jjtt5566发送一个短消息 把jjtt5566加入好友 查看jjtt5566的个人资料 搜索jjtt5566在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jjtt5566的博客7
    发贴心情 
    同意,因为我不懂 编程,是我  朋友问我有没有懂编程的朋友,可我问了很多人都不懂,所以只得来这里发了。楼上那位兄弟,不知能否把 源程序写给我哦。
    他见他整天愁眉不展的,所以就发出来请教各位高手
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/19 10:05:00
     
     enorm 帅哥哟,离线,有人找我吗?
      
      
      威望:4
      头衔:头衔
      等级:大三暑假(参加全国数模竞赛拿了一等奖)(版主)
      文章:144
      积分:854
      门派:Lilybbs.net
      注册:2005/12/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给enorm发送一个短消息 把enorm加入好友 查看enorm的个人资料 搜索enorm在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看enorm的博客8
    发贴心情 
    只支持纯英文字符,标点只包括 ,&.    当然,扩充是 很容易的,   上班了有空再改~~~~~~~~
    // Statistic.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include <map>
    #include <string>
    #include <vector>
    #include <set>
    using namespace std;

    class SortMethod: public binary_function< pair<string, int>, pair<string, int> ,bool>
    {
    public:
     bool operator()(pair<string, int> p1,pair<string, int> p2) const
     {
      if(p1.second==p2.second)
       return p1.first<p1.first;
      return p1.second> p2.second;
     }};

    void InsertWord( string s, map<string,int,less<string> > &stringmap)
    {
     map<string,int,less<string> >::iterator map_iterator=stringmap.find(s);
     if(map_iterator!=stringmap.end())
     {
      ++map_iterator->second;
     }
     else
      stringmap.insert(pair<string,int>(s,1));

    }
    void Findword( const char* ch, vector<string> &vecstring)
    {
     char *temp=const_cast<char*>(ch);
     string s;
     int wordlenth=0;
     while((*temp)!='\0')
     {
      wordlenth=0;
      while((*temp)==' '||(*temp)=='\t')
       ++temp;
      while(((*temp)>='a'&&(*temp)<='z')||((*temp)>='A'&&(*temp)<='Z'))
      {
       ++wordlenth;
          ++temp;
     
      }
      if(wordlenth!=0)
      {
       s.assign(temp-wordlenth,wordlenth);
       vecstring.push_back(s);
      }
      
      if((*temp)==','||(*temp)=='.')
       ++temp;
     }

    }

    void SortFrequence(map<string,int,less<string> > &stringmap, multiset<pair<string, int>,SortMethod> &stringset)
    {
     for(map<string, int, less<string> >::iterator i=stringmap.begin(); i!=stringmap.end(); ++i)
     {
      stringset.insert(*i);
     }


    }
    int _tmain(int argc, _TCHAR* argv[])
    {
     char *t="Green is on the left,Red is on the Righe,the right is afraid of water,the left is afraid of insects";
     vector<string> vecstring;
     map<string,int,less<string> > stringmap;
     multiset<pair<string, int>,SortMethod> stringset;
     Findword(t,vecstring);
     copy(vecstring.begin(),vecstring.end(),ostream_iterator<string>(cout,"\n"));
     for(vector<string>::iterator i=vecstring.begin();i!=vecstring.end();++i)
     {
          InsertWord( *i,stringmap );
     }
     SortFrequence(stringmap, stringset);
     for(multiset<pair<string, int>,SortMethod> ::iterator seti=stringset.begin(); seti!=stringset.end();++seti)
     {
      cout<<(*seti).first<<"  ("<<(*seti).second<< ")  "<<endl;
     }

     return 0;
    }


    [此贴子已经被作者于2006-6-20 8:55:06编辑过]

    ----------------------------------------------
    天亮了

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/19 13:22:00
     
     jjtt5566 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:8
      积分:90
      门派:XML.ORG.CN
      注册:2006/6/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jjtt5566发送一个短消息 把jjtt5566加入好友 查看jjtt5566的个人资料 搜索jjtt5566在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jjtt5566的博客9
    发贴心情 
    楼上大哥,辛苦了。谢谢,什么时候有空改呀???有错误,
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/20 12:45:00
     
     enorm 帅哥哟,离线,有人找我吗?
      
      
      威望:4
      头衔:头衔
      等级:大三暑假(参加全国数模竞赛拿了一等奖)(版主)
      文章:144
      积分:854
      门派:Lilybbs.net
      注册:2005/12/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给enorm发送一个短消息 把enorm加入好友 查看enorm的个人资料 搜索enorm在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看enorm的博客10
    发贴心情 
    可以通过编译的~~~~~~~~~~~~~~~~
    算了,帮人帮到底这是工程文件,编译环境 vs2003

    稍微改动一下可以在其他环境下通过的~~~~~~~~~

    [此贴子已经被作者于2006-6-20 13:35:16编辑过]

    ----------------------------------------------
    天亮了

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/20 13:11:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 C/C++编程思想 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/26 1:36:53

    本主题贴数11,分页: [1] [2]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    141.113ms