- ベストアンサー
入力チェックのプログラム
すみません、教えてください。 『キーボードから入力された数値の範囲をチェックする。 範囲は0~10000とし、入力の際に文字(A~Z,a~z,特殊文字)、空白を含む入力、リターンのみの入力はERRORを表示する。再度、入力を要求し、正常データが入力された時点でOK(入力数値)と表示し、終了する』 という問題なのですが、whileを使って、配列に格納した文字を条件があうまで判定すればいいのではないかとは思うのですが、範囲のチェックをどのようにしたらよいのかよくわかりません。 どのようにしたらよいか教えていただけませんでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ERRORになるかどうかの判定を通り抜けたら数値と判断して良いと思うので、 atoi(数値に変換)して v>=0 && v<=10000 のように範囲チェックすればいいと思います
その他の回答 (1)
- rentahero
- ベストアンサー率53% (182/342)
回答No.1
man 3 isdigit してください。 では不親切ですね。 int isdigit(int c); 文字を渡すと、数字以外で=0, 数字で!=0です。
質問者
お礼
教えていただいたものを使い、解決することができました。 ありがとうございました。
お礼
チェックをしたあとの処理でも躓いてしまっていたので、参考になりました。 ありがとうございました。