标签:c

判断一个字符串是否为数字, 听起来很简单,实现还是有点难度的。 最近写了一个,如下:

#define IS_BLANK(c) ((c) == ' ' || (c) == '\t')

#define IS_DIGIT(c) ((c) >= '0' && (c) <= '9')

#define IS_ALPHA(c) ( ((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') )

#define IS_HEX_DIGIT(c) (((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f'))

/* Whether string s is a number.

Returns 0 for non-number, 1 for integer, 2 for hex-integer, 3 for float */

int is_number(char * s)

{

int base = 10;

char *ptr;

int type = 0;

if (s==NULL) return 0;

ptr = s;

/* skip blank */

while (IS_BLANK(*ptr)) {

ptr++;

}

/* skip sign */

if (*ptr == '-' || *ptr == '+') {

ptr++;

}

/* first char should be digit or dot*/

if (IS_DIGIT(*ptr) || ptr[0]=='.') {

if (ptr[0]!='.') {

/* handle hex numbers */

if (ptr[0] == '0' && ptr[1] && (ptr[1] == 'x' || ptr[1] == 'X')) {

type = 2;

base = 16;

ptr += 2;

}

/* Skip any leading 0s */

while (*ptr == '0') {

ptr++;

}

/* Skip digit */

while (IS_DIGIT(*ptr) || (base == 16 && IS_HEX_DIGIT(*ptr))) {

ptr++;

}

}

/* Handle dot */

if (base == 10 && *ptr && ptr[0]=='.') {

type = 3;

ptr++;

}

/* Skip digit */

while (type==3 && base == 10 && IS_DIGIT(*ptr)) {

ptr++;

}

/* if end with 0, it is number */

if (*ptr==0)

return (type>0) ? type : 1;

else

type = 0;

}

return type;

}

is_number(char *) 函数判断字符串是否为数字。如果不是,返回0。如果是整数,返回1。如果是十六进制整数,返回2. 如果是小数,返回3.

编一个测试程序:

#include

#include

int main(int argc, char**argv)

{

assert( is_number(NULL) ==0 );

assert( is_number("") ==0 );

assert( is_number("9a") ==0 );

assert( is_number("908") ==1 );

assert( is_number("-908") ==1 );

assert( is_number("+09") ==1 );

assert( is_number("-+9") ==0 );

assert( is_number(" 007") ==1 );

assert( is_number("0x9a8F") ==2 );

assert( is_number("-0xAB") ==2 );

assert( is_number("-9.380") ==3 );

assert( is_number("-0xFF.3") ==0 );

printf("test OK\n");

}

运行, "test OK"

标签:c

原文:http://blog.csdn.net/c80486/article/details/45066439

c语言怎么判断字符是否为字母和数字,C语言判断字符串是否为数字相关推荐

  1. Python中判断字符是否为字母、数字、字母和数字组合,验证回文串(LeetCode125)

    判断字符串是否为字母.数字 函数str.isdigit()判断字符是否为数字,函数str.isalpha()判断字符是否为字母,函数isalnum()判断字符是否为数字字母组合. 上代码: str1 ...

  2. 判断字符是否为字母或者数字

    判断是否为大小写字母 返回的是int型 int tolower(int c) {if ((c >= 'A') && (c <= 'Z'))return c + ('a' - ...

  3. java 判断是否字母_java判断字符是否为字母的方法

    java判断字符是否为字母的方法 发布时间:2020-06-29 18:01:37 来源:亿速云 阅读:239 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java判断字符是否为字母的方法,代 ...

  4. java如何判断字符是否是字母?

    关于java判断字符的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java的一个总结.此文内容涉及java如何判断字符是否是字母的基本方法,希望对大家有所帮助. java如何判断字符 ...

  5. c语言判断字符是否为某字母,判断字符是否为字母

    问题一:java 判断一个字符是否为字母int start,end,i=0; char[] ch = s.toCharArray(); while(!Character.isLetter(ch[i]) ...

  6. 判断字符是否为字母c语言,C程序检查字符是否为字母

    C程序检查字符是否为字母 在此示例中,您将学习检查用户输入的字符是否为字母. 要理解此示例,您应该了解以下C语言编程主题: 在C语言编程中,字符变量保存的是ASCII值(0到127之间的整数),而不是 ...

  7. python判断是不是字母_python判断字符是否为字母和数字

    在使用python语言中的字符串方法时,可以使用它们判断字符串中是否有字母或数字或其他的构成.下面利用几个实例说明字符串方法的用法,操作如下:python学习网,大量的免费python视频教程,欢迎在 ...

  8. python判断字符是否是数字和字母_python判断字符是否为字母和数字

    在使用python语言中的字符串方法时,可以使用它们判断字符串中是否有字母或数字或其他的构成.下面利用几个实例说明字符串方法的用法,操作如下:云海天教程网,大量的免费python教程,欢迎在线学习!s ...

  9. python怎么识别字母数字的_python判断字符是否为字母和数字

    在使用python语言中的字符串方法时,可以使用它们判断字符串中是否有字母或数字或其他的构成.下面利用几个实例说明字符串方法的用法,操作如下: str_1 = "123" str_ ...

最新文章

  1. 玉山银行的一名新员工“玉山小i随身金融顾问”
  2. Discuz!X2论坛 “在线时间”更新问题
  3. linux命令:du,df用法说明
  4. 如何取消 登录_LSAT | 退考、缺考、取消成绩,各自的区别和流程是怎样的?
  5. php 64位编码解码,php base64 编码和解码
  6. Spring的AOP-操作术语
  7. OpenSSH 6.7 发布 开源ssh服务器软件
  8. Redis数据结构之有序集合
  9. 软件测试适合女生学吗?
  10. NLP算法岗面经 | 微软/腾讯/字节跳动/快手
  11. MSP430使用__delay_cycles实现延时1ms和1us
  12. js日期格式化yyyy-MM-dd
  13. Collections.sort()方法为List集合内对象进行排序
  14. 【翻译】 XDP的力量
  15. Java自学笔记 运算符及二进制算法
  16. 计算机教室英语怎么读音,电脑教室,computer teaching room,音标,读音,翻译,英文例句,英语词典...
  17. iOS Safari阅读模式研究
  18. 全球与中国成人智能尿布市场产销需求与发展方向分析报告2022-2028年版
  19. VIO回顾:从滤波和优化的视角
  20. python2.0迅雷下载_《Tensorflow 2.0神经网络实践》高清完整PDF版 下载

热门文章

  1. 小程序毕业设计 基于微信景点预约购票小程序毕业设计开题报告功能参考
  2. 智力题论证(有一道选择题,ABC三个选项,一个正确答案, 假设你选择了A,但是通过计算知道C是错误答案,问B是正确答案的概率是多少)
  3. 国外优秀设计网站推荐
  4. python英语小词典代码_50 行代码,实现中英文翻译
  5. 初步了解Linux(1)
  6. 超微 X11SCA-F 主板 TrueNAS 系统中找不到核显解决办法
  7. elementui表格父子表_vue+element-ui实现主子表
  8. 风清扬Excel全套300集教程 阿里云盘
  9. FPGA基础知识|芯片设计基础知识
  10. IP-GUARD试用版下载地址