• ベストアンサー

コマンドラインからの入力で

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

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

  • ベストアンサー
回答No.2

標準ライブラリに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 となります。

その他の回答 (4)

回答No.5

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

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

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

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

> 数字以外が入力されたらエラー表示を出したいのですが数字以外と言うのは0~9以外のことを指すんですよね!? そんなことをここで聞かれてもわかるはずがありません。仕様をよく確認してください。 0~9以外に、0~9(半角)はもちろん、ローマ数字とか、漢数字も数字とみなす可能性も十分考えられます。

回答No.1

int a; scanf("%d",&a); なんてコードではエラー検出は難しい。 gets/fgets等で一旦文字列として読み込み、チェックを行う。 しかるのちsscanfで取り出す。

関連するQ&A