在C/C++中使用isdigit()
时间:2020-02-23 14:29:59 来源:igfitidea点击:
在本文中,我们将介绍如何在C/C++中使用isdigit()函数。
这是检查任何值是否为数字的非常简单的方法。
让我们通过一些简单的示例来看看如何使用此功能。
C/C++中isdigit()的基本语法
此函数采用字符值" val",如果值是数字,则返回0或者1。
这是在<ctypes.h>头文件中定义的,因此我们还必须包含此文件。
#include <ctypes.h> int isdigit(char value);
该值的格式必须可以转换为"无符号字符",例如正整数/ASCII字符。
但是请注意,整数将不被视为数字,因为只考虑了它们的ascii等效项。
在C++中使用isdigit()
虽然您也可以简单地将C代码复制并粘贴到C++,但是C++标准库已经实现了isdigit()!
这可以使我们的生活变得更加简单,因为我们可以直接从std名称空间使用它:
std::isdigit(char value);
它也将返回一个bool值,但这等效于C版本返回的整数值0和1!
在C/C++中使用isdigit()
现在让我们看一些示例,以检查值是否为数字。
我们将使用一些整数和一些字符,并在它们上应用isdigit()。
#include <stdio.h>
#include <ctype.h>
int main() {
int a = 9;
int b = 10;
int c = 49;
char d = 'a';
char e = '0';
printf("Is %d a digit?\n", a);
if (isdigit(a)) printf("Yes\n"); else printf("No\n");
printf("Is %d a digit?\n", b);
if (isdigit(b)) printf("Yes\n"); else printf("No\n");
printf("Is %d a digit?\n", c);
if (isdigit(c)) printf("Yes\n"); else printf("No\n");
printf("Is %c a digit?\n", d);
if (isdigit(d)) printf("Yes\n"); else printf("No\n");
printf("Is %c a digit?\n", e);
if (isdigit(e)) printf("Yes\n"); else printf("No\n");
return 0;
}
输出
Is 9 a digit? No Is 10 a digit? No Is 49 a digit? Yes Is a a digit? No Is 0 a digit? Yes
如您所见,整数9和10不被视为数字。
但是整数49的ASCII字符为" 0",这是一个数字!
它与" 0"完全相同,因此,根据" isdigit(char)",此字符也是一个数字!

