登录脚本不会按预期比较字符串输入
发布时间: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"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |