1.凡是数字皆为字符。任何数字首先是字符,然后才能是数字。所以这个问题应该是如何在字符中识别数字。直接将每个字符挨个提取出来,将他赋给一个整型,得到它的ASCII码值。然后根据ASCII码的范围来判断它到底是数字字符还是非数字字符。由下表可以得知,数字范围在48~57的都是数字字符。
2.用isdigit()函数判断字符串是否为数字。
isdigit()函数包含在ctype.h头文件中,
原型: int isdigit(char c)
用法:#include <ctype.h>
功能:判断字符c是否为数字
说明:当c为数字0-9时,返回非零值,否则返回零。
3.下面使用isdigit()实现一个判断字符串是否为数字的代码。这个函数是判断某一个字符是否为数字,可以用一个字符数组接受输入的字符,然后循环判断每一个字符是否为数字,如果其中一个不是数字,那么返回0,否则返回非0;包含了判断小数点的个数和负数符号-。
#include<stdio.h>
#include<ctype.h>
void main()
{
char a[10]
int i,j,flag=0 /*flag标记小数点个数,如果超过一个,那么就不是数字*/
printf("input a number:\n")
scanf("%s",a)
for(i=0a[i]!=0i++)
{
if(i==0&&(a[i]=='+'||a[i]=='-'))
{
i++
continue
} /*如果第一个字符为+或-,不判断为非数字,可能是符号标志,继续向下判断*/
if(a[i]=='.')
{
flag++
if(flag>1) /*如果小数点个数超过一个,则表示不是数字*/
{
break
}
else if(flag==1) /*如果小数点个数为1个,则可能为小数,继续判断*/
{
continue
}
}
j=isdigit(a[i])
if(j==0)
{
break
}
}
if(j!=0)
printf("%s yes",a)
else
printf("%s no",a)
getch()
}
c语言中大部分自带的方法都有返回值,像scanf方法如果输入正确的话,它会返回一个正整数,所以你可以通过它来判断,如果输入不正确的话它返回是0,你就可以通过这个判断是否为非法输入。
scanf()函数有返回值且为int型。
scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
scanf("%d%d", &a, &b)
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
可以参考下面的代码:
int i = 0
while ( i <10)
{
scanf("%d",&m)
if ( m != 0 || m!= 1) continue
else{
array[i] = m
i++
}
}
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
扩展资料:
C语言参考函数
C语言isprint()函数:判断一个字符是否是可打印字符
C语言islower()函数:判断一个字符是否是小写字母
C语言ldexp()函数:返回x乘以2的exponent次方(次幂)的值
C语言labs()函数:求整数的绝对值(针对long类型)
C语言isgraph()函数:判断一个字符是否是图形字符
C语言isdigit()函数:判断一个字符是否为数字
参考资料来源:百度百科-c语言
参考资料来源:百度百科-C语言函数