本文主要是介绍【ARM 嵌入式 C 字符串系列 23.7 -- C 实现函数 isdigit 和 isxdigit】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
请阅读【嵌入式开发学习必备专栏 】
文章目录
- isdigit 和 isxdigit C代码实现
- 实现 `isdigit`
- 实现 `isxdigit`
- 使用示例
isdigit 和 isxdigit C代码实现
在C语言中,isdigit
和isxdigit
函数用于检查一个字符是否分别为十进制数字或十六进制数字。以下是这两个函数的简单实现,它们依靠标准ASCII码值来判断字符。
实现 isdigit
#include <stdbool.h> // 为了使用bool类型// 检查字符c是否为十进制数字
bool isdigit(int c)
{return c >= '0' && c <= '9';
}
这个isdigit
函数接受一个int
类型的参数(尽管它实际上应该是一个字符),并检查这个字符是否在'0'
到'9'
的范围内。如果是,函数返回true
;否则返回false
。
实现 isxdigit
#include <stdbool.h> // 为了使用bool类型// 检查字符c是否为十六进制数字
bool isxdigit(int c)
{return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
}
这个isxdigit
函数同样接受一个int
类型的参数,并检查这个字符是否为有效的十六进制数字。有效的十六进制数字包括'0'
到'9'
、'a'
到'f'
以及'A'
到'F'
。如果字符是其中之一,函数返回true
;否则返回false
。
使用示例
#include <stdio.h>int main(void)
{char ch;ch = '5';if (isdigit(ch))printf("%c is a decimal digit.\n", ch);elseprintf("%c is not a decimal digit.\n", ch);ch = 'X';if (isxdigit(ch))printf("%c is a hexadecimal digit.\n", ch);elseprintf("%c is not a hexadecimal digit.\n", ch);ch = 'g'; // 注意:小写'g'不是十六进制数字if (isxdigit(ch))printf("%c is a hexadecimal digit.\n", ch);elseprintf("%c is not a hexadecimal digit.\n", ch);return 0;
}
这个示例程序展示了如何使用isdigit
和isxdigit
函数。请注意,尽管我们在这里提供了简单的实现,标准C库中已经提供了这些函数的实现,通常在<ctype.h>
头文件中。在实际的应用程序中,建议直接使用标准库的函数,以保证最大的兼容性和性能。
这篇关于【ARM 嵌入式 C 字符串系列 23.7 -- C 实现函数 isdigit 和 isxdigit】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!