2016-09-14 4 views
0

現在、私は各単語の最初の文字に基づいて段落をソートしようとしています。私は2つのアルファベット(上部と下部)のchar配列を配列インデックスへの単語の最初の文字と比較するために初期化しています。文字配列の文字数をカウントしますか?

私の問題の計画。

  • アルファベットで2つの配列を初期化して、どのアルファベットが先に出るのかを知ることができます。
  • 実際に最初のcharと2つの配列を比較する関数があります。
  • は言葉が私の問題は、私は二つの配列は、すべてのアルファベットがためにカウントされますが、それは1を出力し、私はその理由は分からないことを確認するために26個の文字を持っているかどうかを確認しようとしているです:)

をソート返し

  • コード:

    #include <stdio.h> 
    
    int main(int argc, const char * argv[]) { 
    
        char _alphabetUpperCase[100] = {"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 _alpabetLowerCase[100] = {"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"}; 
    
        int i = 0; 
        int n = 0; 
        while(_alpabetLowerCase[i] != NULL) 
        { 
         n = n+1; 
         i++; 
        } 
    
        printf("%d\n",n); 
        return 0; 
    } 
    
  • 答えて

    3

    この "A" は 'A' と同じではありません。代わりにキャラクターに 'A'を割り当てる必要があります。 すべての文字列を対応する ''文字で置き換えます。例えば

    char _alpabetLowerCase[100] = {'a','b','c' ... }; 
    
    1

    文字または文字列が必要ですか? 'a'は文字ですが、"a"は文字列です。配列のあなたの定義から、あなたは文字がほしいと思う。だから、

    char _alpabetLowerCase[100] = {"a", ... 
    

    ように、そのためのコードを変更する代わりに

    char _alpabetLowerCase[100] = {'a', 'b', .... 
    
    1

    を使用し、これを試してみてください。

    #include <stdio.h> 
    
    int main(int argc, const char * argv[]) { 
        char _alphabetUpperCase[27] = {'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', '\0'}; 
        char _alphabetLowerCase[27] = {'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', '\0'}; 
    
        int i = 0; 
        int n = 0; 
        while(_alphabetLowerCase[i] != '\0') 
        { 
         n = n+1; 
         i++; 
        } 
    
        printf("%d\n",n); 
        return 0; 
    } 
    

    説明:'a'がcharですが、"a"は文字列です。また、私はこのループが'z'の後で止まることを確かめるために27番目の文字を追加しました。(配列のサイズを27に変更しました(100も正しいですが、正しい値を入れることができれば任意の数値を書くのは間違っています))。

    関連する問題