我在进行二维数组比较时遇到问题。我需要创建一个伪登录系统,要求用户输入用户名和密码,然后将输入与预定义的用户名列表进行比较。
在函数中,预定义的用户名由 表示,*s
用户输入为*s1
。当我尝试编译它时,出现了这个讨厌的麻烦制造者:
68 D:\Personal\Dev-Cpp\projects\loginSysTest\main.cpp 来自
char' to
const的无效转换
关于语句strncmp
中的功能。if
这是代码:
#define nameLenght 30
#define User 10
char usernames[User][User] = {{"student"}, {"admin"}, {"Deus Ex Machina"}};
//=====================================================================
int main(int argc, char *argv[])
{
char usernameInput[nameLenght + 1] = {0};
gets(usernameInput);
int login = compS(*usernames, usernameInput);
if(login == 0)
printf("Access Granted! \n");
else
printf("Access Denied!");
system("PAUSE");
return 0;
}
//=====================================================================
int compS(char *s, char *s1)
{
for(int k = 0 ;k < nameLenght; k++)
{
if(strncmp(s[k], s1, strlen(s1)) == 0)
return 1;
}
}
先感谢您。