永发信息网

C语言 统计相同单词出现次数

答案:3  悬赏:0  手机版
解决时间 2021-04-28 20:54

必需有一个结构体 struct,然后统计相同单词出现次数。

比如 输入 ABC(空格)DEF(空格)ABC(空格)CBA(回车)则输入

ABC=2 DEF=1 CBA=1

最佳答案
帮你写了一个,看看吧。根据自己的实际情况再改改,如果有必要的话:

#include <stdio.h>
#include <string.h>
#define M 1000
#define N 20
void main()
{
    char str1[M][N];//单词字串结果存放数组
    char str2[M];//输入串或者用char *str2也可,这样可以
    int strC[M];//单词字串计数数组.对应每个单词串,拥有一个计算器
    int i=0,j=0,k=0,t=0,x=0;
    gets(str2);//接受行输入
    t=strlen(str2)+1;//计算该行中总字符数
    printf("输入字串为:%s\n",str2);
    
    while(j<t)  
    {
        for(;str2[j]==32;j++);//如果串中是空格,则拼命跳过,不计
        while(k<N&&str2[j]!=32) //不是空格,且没有超出题目中的要求: 每个字串长度小于N.如果大于N,自动截除.
                str1[i][k++]=str2[j++];  //将输入行字串分割存放到结果数组中   
        str1[i][k]='\0'; //如果该串原来大于20,会被自动截除
        strC[i]=1;   //计数
        for(x=0;x<i;x++) //与前面的串比较
            if(strncmp(str1[i],str1[x],N)==0)//调用库函数,不分大小写与前面的串相比,相同则返回0.    
            {
                strC[x]++; //相同,计数器数组增加
                i--; //该串为重复串,总串数不增加    
                break; //跳出for循环
            }    
            i++;   //无重复串,则总字串数增加
            k=0;
    }
    
    printf("结果:\n");  
    t=0;
    for(;t<i;t++)//不超出总串数
        printf("%s,%d\n",str1[t],strC[t]);   
}
全部回答
使用C++ STL map 三行代码都可以解决了
12678 7643 6764 67
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
府谷县公安局交警大队车辆管理业务大厅在什么
普陀白沙岛怎么去
请问跑跑卡丁车什么时候出魔怪SR
“苏打绿”的主唱是男的女的?
你喜欢的人向你说出来了?当你还不知道能不能
魂太虚如何加点?
帮我推荐书!!:我初中毕业的..工作了5年了..
塔坪土地付在哪买
盐瓶里面除了盐还有几颗米,有什么用?
圣灵传说,现在内测, 可以进去玩嘛?
1,70米应该多重才算身体正常!!
天府酒家我想知道这个在什么地方
海翼酷车绍兴店怎么去啊,有知道地址的么
1986年农历九月二十九是什么星座啊?
西汉是怎样巩固中央集权政治的?
推荐资讯
有什么好看的丧尸类的电影
梦幻西游2J帮能点修吗?
梦幻诛仙圣巫教的各个心法前期应该如何加?
晓刚通讯合作厅在哪里啊,我有事要去这个地方
他说现在喜欢我,我们的关系顺其自然。我问他
真的能做到只做我自己?只写着属于我自己的故
有没什么方法可以让我在上班时间内不那么打瞌
我的穿越为什么不是自动升级了我手动升了也安
找不到QQ装扮
2017年5万到10万买什么车好?
耐克 阿迪 鞋怎么区分真假
解决一个数学问题,要求有完整文字说明!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?