Shammer's Philosophy

My private adversaria

数値判定関数-Ver20101021

文字列が数値かどうか判定する - Shammerismで書いてみたが、動作しないケースがあったので書き直し。

#include <stdio.h>
#include <string.h>
#include <ctype.h>
/*
 * If v is number, return 1.
 * If v is NOT number, return 0.
 */
int checknumber(char *v){
    int len = strlen(v);
    int i;
    int result = 1;
    for(i = 0; i < len && result ; i++){
	int temp = isdigit(v[i]);
	result = result && temp;
    }
    return result;
}

呼び出し側では、戻り値が0かどうかチェックする。

if( checknumber(argument) == 0 ){
    printf("%s is not number.\n", argument);
}