大文字への変換
CoddyのCジャーニー「論理と制御フロー」セクションの一部。レッスン 23/63。
チャレンジ
簡単前のレッスンのテキストユーティリティプログラムを拡張して、大文字変換機能を追加してください。プログラムは次のことを行う必要があります。
Enter a sentence:を出力して、ユーザーに短い文を入力するよう促す(末尾に改行を付けない)- 入力を保存するために、200個の要素を持つ
sentenceという名前の文字配列を宣言する %s形式指定子とともにscanfを使用して、ユーザーから単一の word を読み取る- 保存された word を
You entered: [word]の形式で出力する strlen()を使用して、word 内の合計 Character 数を計算する- Character count を
Character count: [count]の形式で出力する strlen()を使用して Length をLength: [length]の形式で出力する- loop を使用して word 内の各 Character を反復処理し、母音を数える
- 各 Character について、小文字と大文字の両方で母音(a、e、i、o、u)かどうかを確認する
- 見つかった母音の count を継続的に保持する
- 母音の count を
Vowel count: [count]の形式で出力する 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オンラインコンパイラ