C 谁能告诉我为什么不是';我的if/else状态不工作吗?
我试着玩弄一些小细节,但似乎效果不太好。我不知道为什么C 谁能告诉我为什么不是';我的if/else状态不工作吗?,c,if-statement,C,If Statement,我试着玩弄一些小细节,但似乎效果不太好。我不知道为什么 #include <stdio.h> #include <stdlib.h> int main() { char adminName[20]; char userName[20]; adminName[20]= "Admin"; printf("Please, enter your name:"); scanf("%s", userName); if(userNa
#include <stdio.h>
#include <stdlib.h>
int main()
{
char adminName[20];
char userName[20];
adminName[20]= "Admin";
printf("Please, enter your name:");
scanf("%s", userName);
if(userName == adminName) {
printf("Welcome, Admin! \n");
}
printf("Wrong log-in details, %s. \n", userName);
return 0;
}
#包括
#包括
int main()
{
char-adminName[20];
字符用户名[20];
adminName[20]=“管理员”;
printf(“请输入您的姓名:”);
scanf(“%s”,用户名);
如果(用户名==adminName){
printf(“欢迎,管理员!\n”);
}
printf(“错误的登录详细信息,%s.\n”,用户名);
返回0;
}
在你的问题中有很多错误。
首先
adminName[20] ="admin";
将抛出一个警告,并且您的admin数组未设为“admin”,而第20个元素甚至不存在,因为您的adminName最大值为[19]
您不能直接将字符串复制到另一个数组,请将其用于字符串复制
strcpy();
作为比较,使用
strcmp();
更好地学习string.h头文件。这两个都存在于string.h头文件中请尝试这个,它可以根据您的需要工作,阅读代码中的注释,在学习过程中犯一些错误是正常的
#include <stdio.h>
#include <stdlib.h>
int main( )
{
char adminName[20];
char userName[20];
strcpy( adminName, "Admin" ); // use strcpy
printf( "Please, enter your name:" );
scanf( "%s", userName );
if ( !strcmp( userName, adminName ) ) // use strcmp
{
printf( "Welcome, Admin! \n" );
}
else // use else
printf( "Wrong log-in details, %s. \n", userName );
return 0;
}
#包括
#包括
int main()
{
char-adminName[20];
字符用户名[20];
strcpy(adminName,“Admin”);//使用strcpy
printf(“请输入您的姓名:”);
scanf(“%s”,用户名);
如果(!strcmp(userName,adminName))//使用strcmp
{
printf(“欢迎,管理员!\n”);
}
else//使用else
printf(“错误的登录详细信息,%s.\n”,用户名);
返回0;
}
更改此if(userName==adminName)
->if(strcmp(userName,adminName)==0)
。因为您正在比较字符串。这不是比较字符串的工作方式。这不是它的工作原理!谢谢,我想知道如何使用strcpy():)还有20个字符的名称似乎有点短,您可以决定扩展到30个。