プロが教えるわが家の防犯対策術!

数字以外が入力されたらエラー表示を出したいのですが数字以外と言うのは0~9以外のことを指すんですよね!?ここのプログラミング部分がわからないので教えてもらえますか? お願いします。

A 回答 (5件)

int a;


scanf("%d",&a);
なんてコードではエラー検出は難しい。

gets/fgets等で一旦文字列として読み込み、チェックを行う。
しかるのちsscanfで取り出す。
    • good
    • 0

標準ライブラリにisdigitというものがあります。


int isdigit(int c);
これは、あたえられた文字cが数字であるかないかを判定します。

これをつかってをつくればいいと思います。
int isdigitstr(const char* str){
while(*str != '\0'){
if(isdigit(*str) == 0)
return 0;// 与えられた文字は数字以外を含みます。
str++; //次の文字にすすめる
}
return 1; //与えられた文字列は、数字です。
}

char* alpha = "abcde" => 0
char* digit = "01234" => 1
char* digitalpha = "012ab" => 0
となります。
    • good
    • 0

> 数字以外が入力されたらエラー表示を出したいのですが数字以外と言うのは0~9以外のことを指すんですよね!?



そんなことをここで聞かれてもわかるはずがありません。仕様をよく確認してください。

0~9以外に、0~9(半角)はもちろん、ローマ数字とか、漢数字も数字とみなす可能性も十分考えられます。
    • good
    • 0

数字が0-9 のキャラクタのことならそれでいいかと思います。


その場合、#2のような感じでいいと思います。
数値と言った場合には、- 符号や小数点があったり、 1.23E08 のような指数表示であったり、 あるいは、0xFE のような16進とか10進以外の基数の数値であったりするかもしれません。
    • good
    • 0

char型がint型でいう何であるかに気をつけてみたらわかりますよ。

    • good
    • 0

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