最終的な出力
CoddyのCジャーニー「Logic & Flow」セクションの一部 — レッスン 24/63。
チャレンジ
簡単これまでのレッスンで作成したすべての機能を1つの包括的な出力に統合して、テキストユーティリティプログラムを完成させましょう。プログラムは以下の動作を行う必要があります:
Enter a sentence:と表示して、ユーザーに短い文の入力を促します(末尾に改行を入れないでください。printf("Enter a sentence: \n")ではなくprintf("Enter a sentence: ")を使用します)。- 入力を格納するために、200個の要素を持つ
sentenceという名前の文字配列を宣言します。 scanfと%sフォーマット指定子を使用して、ユーザーから単一の単語を読み取ります。- 表示用に、元の単語を別の文字配列に保存します。
strlen()を使用して、合計文字数を計算します。- 各文字をループで確認し、小文字と大文字の両方の母音(a, e, i, o, u)に一致するかどうかをチェックして、母音の数をカウントします。
- ループ内で
toupper()関数を使用して、単語を大文字に変換します。 - すべての結果を、各情報を個別の行に分けて、クリーンで整理された形式で表示します。
文字列関数用の <string.h> ヘッダーと、文字変換関数用の <ctype.h> ヘッダーをインクルードすることを忘れないでください。
出力は、以下の正確な形式ですべての結果を表示する必要があります:
Enter a sentence: Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]重要: プロンプト Enter a sentence: の直後に改行を入れないでください。Original: という単語は、入力が読み取られた直後に同じ行に表示されます。
例えば、入力が以下のようである場合:
Hello出力は以下のようになります:
Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLOこの最終チャレンジでは、プロジェクトを通じて開発してきたすべてのテキスト処理機能(入力処理、strlen() による文字数カウント、ループと条件文による母音カウント、toupper() による大文字変換)を統合します。プログラムは、テキスト分析結果のクリーンで整理された要約を提示する必要があります。
自分で試してみよう
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char sentence[200];
printf("Enter a sentence: ");
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int length = strlen(sentence);
printf("Character count: %d\n", length);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < length; 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);
printf("Uppercase: ");
for (int i = 0; i < length; i++) {
printf("%c", toupper(sentence[i]));
}
printf("\n");
return 0;
}