#include<stdio.h>
int main(){
char user = "welcome";
printf("Enter UserName \n");
scanf("%s",&user);
char pass = "hi";
printf("Enter Password: \n");
scanf("%s",&pass);
if(user=="welcome" && pass == "hi"){
printf("Login Successful");
}
else{
printf("Retry");
}
return 0;
}
此程序要求输入用户名和密码,然后检查是否输入正确,并打印适当的声明。
然而,对我来说,它只显示其他部分,即使输入的数据是正确的。
enter image description here
2条答案
按热度按时间bis0qfac1#
这个程序完全错了。
在这些声明中
以及
你声明了
char
类型的对象,你试图用char *
类型的表达式初始化这些对象(用作初始化器的字符串常量隐式转换为指向它们的第一个元素的指针)。相反,您需要声明字符数组,从中读取用户名和密码。
例如
scanf
的调用可以如下所示在此if语句中
你正在比较指针。相反,你需要比较字符串,比如
要使用函数
strcmp
,您需要包含标头<string.h>
n6lpvg4x2#
如下声明用户名和密码字段:
当前它们只能容纳单个字符。您可以将1024更改为您认为用户将输入的最大字符数。您还应该记住字符串不能与
user=="welcome"
进行比较!请使用string.h
中的strcmp
函数。