前提
100文字以内で入力した英文をすべて大文字に返す。ただし、EOFでプログラムを終了させる。
実現したいこと
getcharやputcharを用いて以下のようなソースコードを作ったが、fgetsやputsを用いてよりスマートなソースコードにできるのか知りたいです。また、それ以外の方法でもスマートにできるものがあれば教えて欲しいです。
発生している問題・エラーメッセージ
100文字を越える英文を入力したときにエラー判定が出ずにそのまま次のループの入力とされてしまう。
該当のソースコード
c言語
ソースコード
#include <stdio.h>
int main(void)
{
int i=1,ch;
printf("Please input a sentence with 100 characters or less.\nPlease press Ctrl-Z to stop this program.\n"); ch = getchar(); while(1) { while(i<100) { if(ch == EOF) { break; } else if((ch >=97)&&(ch <= 122)) { ch= ch-32; i++; } else if((ch >=65)&&(ch <= 90)) { i++; } else if(ch == 10 ) { break; } putchar(ch); ch=getchar(); } if(ch == EOF) { break; } printf("\n"); printf("Please input a sentence with 100 characters or less.\nPlease press Ctrl-Z to stop this program.\n"); ch = getchar(); i=1; }
return 0;
}
回答2件
あなたの回答
tips
プレビュー