Menu
Coddy logo textTech

大文字への変換

CoddyのCジャーニー「Logic & Flow」セクションの一部 — レッスン 23/63。

challenge icon

チャレンジ

簡単

前回のレッスンのテキストユーティリティプログラムを拡張して、大文字変換機能を追加しましょう。プログラムは以下の手順で行う必要があります:

  1. Enter a sentence: (末尾に改行なし)と表示して、ユーザーに短い文の入力を促します。
  2. 入力を保存するために、200要素の sentence という名前の文字配列を宣言します。
  3. scanf%s フォーマット指定子を使用して、ユーザーから単一の単語を読み取ります。
  4. 保存された単語を You entered: [word] の形式で表示します。
  5. strlen() を使用して、単語の総文字数を計算します。
  6. 文字数を Character count: [count] の形式で表示します。
  7. strlen() を使用した長さを Length: [length] の形式で表示します。
  8. ループを使用して単語内の各文字を反復処理し、母音をカウントします。
  9. 各文字について、小文字と大文字の両方で母音(a, e, i, o, u)であるかどうかを確認します。
  10. 見つかった母音の合計数を保持します。
  11. 母音の数を Vowel count: [count] の形式で表示します。
  12. Uppercase: と表示した後、ループを使用して toupper() 関数で単語の各文字を大文字に変換して表示します。

strlen() 関数を使用するために <string.h> ヘッダーを、toupper() 関数を使用するために <ctype.h> ヘッダーをインクルードすることを忘れないでください。

toupper() について:
<ctype.h>toupper() 関数は、単一の文字を対応する大文字に変換します。文字がすでに大文字であるか、文字でない場合は、そのまま返されます。
例:toupper('a')'A' を返し、toupper('Z')'Z' を返します。
ループ内でこれを使用して、一度に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() 関数を使用した大文字変換機能を追加することで、前回のレッスンをさらに発展させたものです。文字列内の各文字をループで処理し、大文字に変換してから、変換後の結果を表示する必要があります。

自分で試してみよう

#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;
}

Logic & Flowのすべてのレッスン