gpt4 book ai didi

c - C 中的数据验证

转载 作者:行者123 更新时间:2023-12-04 10:30:09 24 4
gpt4 key购买 nike

我正在尝试用 C 编写一个简单的程序来验证用户数据。该程序应该识别用户输入的字符是数字、字母还是特殊字符。

代码以某种方式将每种输入字符识别为数字。我在下面附加了代码,如果有人能指出我哪里出错了,我将不胜感激?

//接收用户输入并判断输入的是字符、数字还是特殊字符的程序

#include<stdio.h>
#include<conio.h>
#include<string.h>


char ch;

int main()

{
clrscr();

printf("Enter a character \n");
scanf("%c \n",ch);

if ((ch>='A'&& ch<='Z')||(ch>='a'&& ch<='z') )
{
printf("The character entered is an alphabet \n" );

}
else if ((ch>=0)&&(ch<=9))
{
printf("Character entered is an number \n");
}


else
{
printf("Character entered is a special character");

}
return 0;
}

最佳答案

scanf 接受一个指针 作为%c 的参数。换句话说,

scanf("%c \n",ch);

应该写成:

scanf("%c\n",&ch);

没有引用运算符 (&),scanf 接收 ch。在这种情况下,该值为垃圾,因为 ch 未设置。*引用 chscanf 提供了一个指向的指针ch,而不是 ch 本身,因此 scanf 可以通过取消引用指针来修改 ch 的值(使用取消引用运算符,*)。

数字检查也存在问题 Himadri mentioned .

* 这实际上是未定义的行为

关于c - C 中的数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com