当前位置:  开发笔记 > 编程语言 > 正文

按C中的流行度排序字符

如何解决《按C中的流行度排序字符》经验,为你挑选了0个好方法。

我写了一个代码来列出字符串中字符的出现.它有效,但我想知道,是否有可能把它整理好?例如下降.听起来很简单,但我在这里使用了两个数组,我不知道怎么可能将它们链接起来,这样它们就不会在排序后搞砸了.我读到在C++中我可以使用std :: pair但是从我发现的内容来看,在C++中没有替代品.

是不是只有一个简单的方法来排序它,以便我可以有一个大多数/最不受欢迎的字符列表?我开始进入冒泡排序,但无论我选择什么,两个阵列之间仍然没有链接.

这是代码:

#include 
#include 
#include 

main(int argc, char **argv) {
    int hits[26] = { 0 };
    char letters[26] = {
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
        'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
        'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
    char *line;
    int i;

    printf("Write the line:\n");
    scanf("%25[^\n]", line);
    for (i = 0; i < strlen(line); i++) {
        if (!isalpha(line[i]))
            continue;
        hits[(int)(tolower(line[i]) - 'a')]++;
    }

    for (i = 0; i < 26; i++) {
        printf("%c is showing up %d times.\n", letters[i], hits[i]);
    }
    return 0;
}

也许我的方法中有一个简单的错误,如果有的话,那么我很乐意指出它.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有