Menu
Coddy logo textTech

大文字への変換

CoddyのCジャーニー「論理と制御フロー」セクションの一部。レッスン 23/63。

challenge icon

チャレンジ

簡単

前のレッスンのテキストユーティリティプログラムを拡張して、大文字変換機能を追加してください。プログラムは次のことを行う必要があります。

  1. Enter a sentence: を出力して、ユーザーに短い文を入力するよう促す(末尾に改行を付けない)
  2. 入力を保存するために、200個の要素を持つ sentence という名前の文字配列を宣言する
  3. %s 形式指定子とともに scanf を使用して、ユーザーから単一の word を読み取る
  4. 保存された word を You entered: [word] の形式で出力する
  5. strlen() を使用して、word 内の合計 Character 数を計算する
  6. Character count を Character count: [count] の形式で出力する
  7. strlen() を使用して Length を Length: [length] の形式で出力する
  8. loop を使用して word 内の各 Character を反復処理し、母音を数える
  9. 各 Character について、小文字と大文字の両方で母音(a、e、i、o、u)かどうかを確認する
  10. 見つかった母音の count を継続的に保持する
  11. 母音の count を Vowel count: [count] の形式で出力する
  12. Uppercase: を出力し、その後 loop を使用して toupper() 関数で word 内の各 Character を大文字に変換して出力する

strlen() 関数を使用するには <string.h> ヘッダーを、toupper() 関数を使用するには <ctype.h> ヘッダーを必ず include してください。

toupper() について:
<ctype.h>toupper() 関数は、1つの Character を対応する大文字に変換します。Character がすでに大文字である場合、または文字ではない場合は、変更せずに返します。
例: toupper('a')'A' を返し、toupper('Z')'Z' を返します。
loop 内で使用して、各 Character を一度に1つずつ変換できます: printf("%c", toupper(sentence[i]));

重要: プロンプト Enter a sentence: の後には改行を付けないでください。\n を含めずに printf("Enter a sentence: "); を使用します。

出力は、次の形式で結果を表示する必要があります。

Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]

たとえば、入力が次のような場合:

Programming

出力は次のようになります。

Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMING

この課題では、<ctype.h> ライブラリの toupper() 関数を使用して大文字変換機能を追加し、前のレッスンの内容を発展させます。string 内の各 Character を反復処理して大文字に変換し、その変換結果を出力するために、loop を使用する必要があります。

自分で試してみよう

#include <stdio.h>
#include <string.h>

int main() {
    printf("Enter a sentence: \n");
    
    char sentence[200];
    scanf("%s", sentence);
    
    printf("You entered: %s\n", sentence);
    
    int char_count = strlen(sentence);
    printf("Character count: %d\n", char_count);
    
    int length = strlen(sentence);
    printf("Length: %d\n", length);
    
    int vowel_count = 0;
    for (int i = 0; i < strlen(sentence); i++) {
        char c = sentence[i];
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
            c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
            vowel_count++;
        }
    }
    
    printf("Vowel count: %d\n", vowel_count);
    
    return 0;
}

論理と制御フローのすべてのレッスン

自分で練習してみよう: Cオンラインコンパイラ