【发布时间】:2020-03-25 13:26:29
【问题描述】:
我目前正在学习 C,我正在尝试创建一个程序,该程序检查用户输入的是字母还是整数:
#include <stdio.h>
#include <ctype.h>
int main()
{
char a[256];
printf("\n Please enter a number or a letter: ");
scanf("%s", &a);
if (isdigit(a[256]) == 1)
{
printf("\n %c is a number.", a);
printf("\n The return value is %d.", isdigit(a[256]));
}
else if (isdigit(a[256]) == 0)
{
printf("\n %c is a letter.", a);
printf("\n The return value is %d.", isdigit(a[256]));
}
getch();
return 0;
}
但是,当我运行程序时,我得到的是:
Please enter a number or a letter: 15
15 is a letter.
The return value is 0.
或者这个:
Please enter a number or a letter: X
X is a letter.
The return value is 0.
我输入的任何输入总是返回相同的输出。我想传递一个 char 数组,以便程序接收整个输入(例如如果我输入“230”,程序不仅会检查“2”,还会检查“230”)。
【问题讨论】:
-
您需要查看数组。 a[256] 指的是数组外部的内存位置。首先编写代码以在没有数组和没有输入(无扫描)的情况下执行此操作,只需使用常量即可。例如,首先 a = 'c' 和 a = '1'。然后尝试使用预先分配的数组 array[4] = "cat" 和 array[4] = "123"。一旦你有这个工作,添加输入。
标签: c arrays pointers variables error-handling