-1

入力ストリームから文字を (ファイルの終わりまで) 繰り返し読み取るプログラムを作成します。文字が大文字の場合は、小文字に変更して出力ストリームに書き込みます。他のすべての文字については、文字を変更せずに出力ストリームに書き込みます。入力には getchar() を使用し、出力には putchar() を使用し、入力ファイルをプログラムに接続するには入力リダイレクトを使用します (クイックスタートの 16 ページを参照)。C:>lowerCase < anyOldTextFile.txt これには、while ループ内にネストされた if ステートメントが必要です。ASCII の表を見ると役立つかもしれません。

私は宿題を終わらせるように頼んでいるわけではありません。これを始める方法さえ本当にわからず、ヒントを探しているだけです。

私が試したコードは次のとおりです。

#include <stdio.h>
#include <stdlib.h>
int main() {
    int c, l;
    printf("Enter Letter: ");
    scanf("%c ", &l);
    c=getchar();
    while (c != EOF) {
        if(l <= 'Z') {
            putchar(l);
        } else if (l <= 'z') {
            putchar(l);
        } else {
            c = EOF;
        }
        system("Pause");
    }
} 
4

1 に答える 1

2

プログラムには、次のことを行う「メイン」関数が必要です。

  1. ループでは、getchar()関数を呼び出して標準入力ストリーム (stdin) から文字を読み取り、その戻り値をint"c" という名前の変数に格納します (たとえば)。

  2. "c" の値が EOF に等しい場合は、ループから抜ける (例: "break" を使用) か、メインから完全に ("return" または "exit" を使用)。

  3. 「c」の値が大文字の場合 (isupper()関数を参照) 、小文字に変換します (を参照tolower())。

  4. を使用して、「c」の値を標準出力ストリーム (stdout) に出力しputchar()ます。

于 2013-01-29T22:49:33.967 に答える