在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)",此字符也是一个数字!