加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

登录脚本不会按预期比较字符串输入

发布时间:2020-12-16 10:12:19 所属栏目:百科 来源:网络整理
导读:所以我想制作一个登录脚本并且我编写了它但是当我运行它时,它总是说“错误的用户名”,即使它是正确的. 这是我的代码 #include stdio.h#include stdlib.h#define MYNAME "SLITHER" //Defines SLITHER so u can put %s yo use it#define HackerNum 1338/*Welco
所以我想制作一个登录脚本并且我编写了它但是当我运行它时,它总是说“错误的用户名”,即使它是正确的.

这是我的代码

#include <stdio.h>
#include <stdlib.h>
#define MYNAME "SLITHER"  //Defines SLITHER so u can put %s yo use it
#define HackerNum 1338
/*
Welcome To slithers Program
I will be coding what ever I like
c:
*/


void LoginScript ();

char RealUsername[20] = "slither";
char UsersInput[30];

int main ()
{
    printf("Welcome To /bin V1");
    printf("n Made By slither!n");

    LoginScript ();
}

void LoginScript ()
{
    printf("Please Loginn");
    printf("Username: ");
    scanf("%s",&UsersInput);
    //printf("You Entered %s",UsersInput); This says what you printed
    if (UsersInput == RealUsername)
    {
        printf("Logged in");
    }
    else
    {
        printf("Wrong Username");
    }
}

解决方法

> scanf(“%s”,& UsersInput);由于类型不匹配而导致未定义的行为(char * expected,got char(*)[30])
> UsersInput == RealUsername是指针的比较,而不是字符串的内容. strcmp()对比较字符串很有用.

添加#include< string.h>在代码的开头,试试这个:

void LoginScript ()
{
    printf("Please Loginn");
    printf("Username: ");
    scanf("%29s",UsersInput); // add 29 (maximum length to read) to avoid buffer overrun
    //printf("You Entered %s",UsersInput); This says what you printed
    if (strcmp(UsersInput,RealUsername) == 0)
    {
        printf("Logged in");
    }
    else
    {
        printf("Wrong Username");
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读