字母C中按字母顺序排列的字母

时间:2016-05-19 18:02:58

标签: c sorting alphabetical

我是C编程的新手,并尝试编写一个程序来按字母顺序对用户输入的字母串进行排序。到目前为止,我有以下代码。任何人都可以帮助我让它运行正常吗?代码编译并运行,但似乎没有正确存储运行计数。

就调试它而言,我注意到使用字母作为计数器可能是一个问题,但已经在其他地方看到了这一点,并且他们的https://stackoverflow.com/a/29644387/2214832编译并运行良好。提前谢谢。

func testStringUInt8Extension() {
    var cs : [UInt8] = []
    for char : UInt8 in 0..<255 {
        cs.append(char)
    }
    print("0..255 string looks like \(String(cs)))")
}

1 个答案:

答案 0 :(得分:1)

您的代码中存在多个错误:

  1. for循环中出现两次的以下行不正确:

    letter_count[letter] = letter_count[l] + 1  ;
    

    变量l永远不会被初始化。 正确的是,例如:

    letter_count[letter]++;
    
  2. 以下也是错误的:

    printf("Letter %c has a count of %d\n",str[i], letter_count[i]) ;
    

    信件的计数在letter_count[letter]而非letter_count[i]

  3. 循环终止条件中有off-by-one error

    for(j = 0 ; j <= letter_count[i] ; j++)
    

    应该更改为j < letter_count[i],否则你会将每个字母计数超过一次。