"C语言怎么根据ASCII码判断输入的数据是字符串还是纯数字"

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了"C语言怎么根据ASCII码判断输入的数据是字符串还是纯数字"相关的知识,希望对你有一定的参考价值。

C语言使用的读入键盘输入的函数较常用的一般有:
scanf
fscanf
sscanf
getchar
gets
scanf、fscanf、sscanf
根据你定义的字符格式来判断是字符串还是纯数字。
例如:
scanf("%d",&a);
使用了格式控制%d就表示输入的十进制整数;
scanf("%",a);控制%s就表示输入的字符串。
详细格式控制符如下:
a
读浮点值(仅适用于
C99)
A
读浮点值(仅适用于
C99)
c
读单字符
d
读十进制整数
i
读十进制、八进制、十六进制整数
e
读浮点数
E
读浮点数
f
读浮点数
F
读浮点数(仅适用于
C99)
g
读浮点数
G
读浮点数
o
读八进制数
s
读字符串
x
读十六进制数
X
读十六进制数
p
读指针值
n
至此已读入值的等价字符数
u
读无符号十进制整数
[
]
扫描字符集合
%

%
符号(百分号)
gets一般直接默认输入的就是字符串,即使你输入一串数字,也会认为你输入的是字符数字;
getchar一般直接默认输入字符。
参考技术A 0到9的的ascii码全是从0x30到0x39的,你只需要判断一个字符是不是在这个范围就知道是不是数字了

C语言判断输入的数是不是在之前输入的数组中如何写?

从第二张scanf那里开始,判断的语句问题在哪里,输入后无法运行出结果

第6行改成:
long b=0;

第8行改成:
for(i=0;i<10;i++)

第10行改成:
scanf("%ld",&a[i]);

第34-48行改成:
for(i=0;i<10;i++)

printf("请输入第%ld个要查找的数:",i+1);
scanf("%ld",k);
for(j=0;j<10;j++)

if(a[j]==k)
break;

if(j>=10)
printf("%ld不在这个数组中\n",k);
else
printf("%ld在这个数组中\n",k);
参考技术A 把右图中的第38~47行改为:
int found=0;
for(i=0;i<10;i++)
if(a[i]==k)found=1;
printf("%ld%s在这个数组中\n",k,found?"":"不");
参考技术B 能把代码粘上来吗

没说你错,就是为啥int main后面的()里要加void 还有第一个输入数据类型为什么是%d本回答被提问者采纳
参考技术C 具体什么时间交呢,我有。

以上是关于"C语言怎么根据ASCII码判断输入的数据是字符串还是纯数字"的主要内容,如果未能解决你的问题,请参考以下文章

c语言怎么求字符的ascii码

C语言,如何判断输入的是字母?ASCII字母对于值是65--90,97--122。

c语言字符与ASCII码的转换

C语言,ASCII码怎么转换为字符?

C语言问题:输入一行字符串,然后按照ASCII码大小进行升序排序。

C语言判断输入的数是不是在之前输入的数组中如何写?