c
1 2int main(void) { 3 4char inva[1024]; //入力された値 5 6 printf("数字を入力してください(乱数) 文字または文字列を入力してください(ファイル読み込み) "); 7 scanf("%s", &inva); 8 srand((unsigned)inva); 9 10 if (isdigit(inva) == 0) { //入力された値が文字か文字列だった場合 11 12}else if (isdigit(inva) != 0){ //入力された値が数値だった場合 13 14} 15 16
scanf で入力された値が 数値か 文字、文字列かで 処理を変えたいと思ってます。
数値を入力すると else if (isdigit(inva) != 0){ //入力された値が数値だった場合
がちゃんと処理されます。 // 入力値 例: 1 とか 66416326
文字、文字列を入力すると
文字など少ない文字であれば,if (isdigit(inva) == 0) { //入力された値が文字か文字列だった場合
が処理されます。
しかし、長い文字列を入力すると 処理がうまくいきません。 //入力値 例:gseglfbjasvdhvadv
これは、文字列として認識されないのでしょうか?
※ atoi 関数でもできるみたいですが
例えば 1e と入力した場合 1 が 返るみたいですが、 atoiを使ってでも可能でしょうか?
----追記------
isdigit は 複数の文字や数字は 判定することができないのでしょうか?

回答3件
あなたの回答
tips
プレビュー