• ベストアンサー

入力チェックのプログラム

すみません、教えてください。 『キーボードから入力された数値の範囲をチェックする。 範囲は0~10000とし、入力の際に文字(A~Z,a~z,特殊文字)、空白を含む入力、リターンのみの入力はERRORを表示する。再度、入力を要求し、正常データが入力された時点でOK(入力数値)と表示し、終了する』 という問題なのですが、whileを使って、配列に格納した文字を条件があうまで判定すればいいのではないかとは思うのですが、範囲のチェックをどのようにしたらよいのかよくわかりません。 どのようにしたらよいか教えていただけませんでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

ERRORになるかどうかの判定を通り抜けたら数値と判断して良いと思うので、 atoi(数値に変換)して v>=0 && v<=10000 のように範囲チェックすればいいと思います

mikku_ku
質問者

お礼

チェックをしたあとの処理でも躓いてしまっていたので、参考になりました。 ありがとうございました。

その他の回答 (1)

  • rentahero
  • ベストアンサー率53% (182/342)
回答No.1

man 3 isdigit してください。 では不親切ですね。 int isdigit(int c); 文字を渡すと、数字以外で=0, 数字で!=0です。

参考URL:
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/isdigit.3.html
mikku_ku
質問者

お礼

教えていただいたものを使い、解決することができました。 ありがとうございました。

関連するQ&A