文字列が数値かどうかを C 言語で判定する方法

C言語では、isdigit()関数を使用して文字が数字かどうかを判断できます。isdigit()関数はctype.hヘッダファイル内の関数で、そのプロトタイプは次のとおりです。

int isdigit(int c);

isdigit()関数は、文字cを引数にとり、数字であれば0以外の値(真)、そうでなければ0(偽)を返します。

文字列が数字かどうかを判定するには、文字列の1文字ずつを調べ、isdigit()関数を使って判定します。例として、以下のコードを示します。

#include
#include

int isNumber(char *str) {
int i = 0;
if (str[0] == ‘-‘) {
i = 1;
}
for (; str[i] != ‘\0‘; i++) {
if (!isdigit(str[i])) {
return 0;
}
}
return 1;
}

int main() {
char str1[] = “12345”;
char str2[] = “-12345”;
char str3[] = “12a45”;
}

// 判断字符串是否为数字
if (isNumber(str1)) {
    printf("%s is a number.\n", str1);
} else {
    printf("%s is not a number.\n", str1);
}

if (isNumber(str2)) {
    printf("%s is a number.\n", str2);
} else {
    printf("%s is not a number.\n", str2);
}

if (isNumber(str3)) {
    printf("%s is a number.\n", str3);
} else {
    printf("%s is not a number.\n", str3);
}

return 0;

このプロジェクトは、新しいテクノロジーを開発し、新しい可能性を探求することに取り組んでいます。

上記のコードを実行すると、結果は次のようになります。

12345は数字です。

注記:上コードは整数型の数値文字列のみを判定できます。 少数点付きの浮動小数点数文字列や科学表記で表された文字列を判断する場合は、他の方法を使用する必要があります。

bannerAds