有人能告诉我为什么我的if / else语句不起作用?

时间:2015-11-11 05:59:39

标签: 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(userName == adminName) {
        printf("Welcome, Admin! \n");
    }

    printf("Wrong log-in details, %s. \n", userName);
    return 0;
}

2 个答案:

答案 0 :(得分:0)

在你的问题中有很多错误。 首先

adminName[20] ="admin";

会发出一个警告,而你的管理员阵列不是&#34; admin&#34;,而第20个元素甚至不存在,因为你有最大的adminName [19]。

您无法直接将字符串复制到另一个数组,将其用于字符串复制

strcpy();

为了进行比较,请使用

strcmp();

最好学习string.h头文件。这两个存在于string.h头文件

答案 1 :(得分:0)

请尝试这个,它可以按照您的意愿工作,阅读代码中的注释,在学习时犯一些错误是正常的。

#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;
}