プロが教える店舗&オフィスのセキュリティ対策術

すみません、教えてください。

『キーボードから入力された数値の範囲をチェックする。
範囲は0~10000とし、入力の際に文字(A~Z,a~z,特殊文字)、空白を含む入力、リターンのみの入力はERRORを表示する。再度、入力を要求し、正常データが入力された時点でOK(入力数値)と表示し、終了する』

という問題なのですが、whileを使って、配列に格納した文字を条件があうまで判定すればいいのではないかとは思うのですが、範囲のチェックをどのようにしたらよいのかよくわかりません。
どのようにしたらよいか教えていただけませんでしょうか。
よろしくお願いします。

A 回答 (2件)

ERRORになるかどうかの判定を通り抜けたら数値と判断して良いと思うので、


atoi(数値に変換)して
v>=0 && v<=10000
のように範囲チェックすればいいと思います
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/11 07:44

man 3 isdigit


してください。

では不親切ですね。
int isdigit(int c);
文字を渡すと、数字以外で=0, 数字で!=0です。

参考URL:http://www.linux.or.jp/JM/html/LDP_man-pages/man …
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/11 07:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!