一个很简单的密码校验程序,想不通怎么老不对头啊?

make1me1laugh 2003-10-09 10:22:47
#include <stdio.h>

int main(void)
{
char str1[10];
char str2[10];

printf("UserName:");
gets(str1);
printf("PassWord:");
gets(str2);

puts("checking...");
printf("usr:%s\n",str1);
printf("pwd:%s\n",str2);

if ((str1 == "paopaomj") && (str2 == "1234567"))
puts("Welcome to JBuilder!");
else
if ((str1 == "paopaomj") && (str2 != "1234567"))
puts("Incorrect password! Retry...");
else
puts("Not such a user.");

getch();
return 0;
}


就是不管怎么样输入,都是输出not such a user。纳闷极了,大家给指点指点,见笑了。
...全文
39 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
huigll 2003-10-10
  • 打赏
  • 举报
回复
strcmp比较相同返回0
#include <stdio.h>
#include <string.h>

int main(void)
{
char str1[10];
char str2[10];

printf("UserName:");
gets(str1);
printf("PassWord:");
gets(str2);

puts("checking...");
printf("usr:%s\n",str1);
printf("pwd:%s\n",str2);

if (strcmp(str1,"paopaomj")==0 && strcmp(str2,"1234567")==0)
puts("Welcome to JBuilder!");
else
if (strcmp(str1,"paopaomj")==0 && strcmp(str2,"1234567")==0)
puts("Incorrect password! Retry...");
else
puts("Not such a user.");

return 0;
}

UserName:paopaomj
PassWord:1234567
checking...
usr:paopaomj
pwd:1234567
Welcome to JBuilder!

Depress 2003-10-10
  • 打赏
  • 举报
回复
up
hamsky 2003-10-09
  • 打赏
  • 举报
回复
就是楼上的建议
字符串的比较不能直接用==号,应该用函数strcmp,否则会出错
make1me1laugh 2003-10-09
  • 打赏
  • 举报
回复
喏,我改成strcmp()了,可是问题依旧啊,不过还是谢谢帮忙。

#include <stdio.h>
#include <string.h>

int main(void)
{
char str1[10];
char str2[10];

printf("UserName:");
gets(str1);
printf("PassWord:");
gets(str2);

puts("checking...");
printf("usr:%s\n",str1);
printf("pwd:%s\n",str2);

if (strcmp(str1,"paopaomj") && strcmp(str2,"1234567"))
puts("Welcome to JBuilder!");
else
if (strcmp(str1,"paopaomj") && strcmp(str2,"1234567"))
puts("Incorrect password! Retry...");
else
puts("Not such a user.");

getch();
return 0;
}
make1me1laugh 2003-10-09
  • 打赏
  • 举报
回复
恩,谢谢,不过这个问题我注意到了。
这个本来是一段我写在jbuilder里的java程序,
这里为了表述方便写成了c语言
问题应该不在那里
以下是原来的java程序段:
void button1_actionPerformed(ActionEvent e)
{
String str1,str2;
str1 = String.valueOf(textField1.getText());
str2 = String.valueOf(textField2.getText());

if ((str1 == "paopaomj")&&(str2 == "1234567"))
textField3.setText("Welcome to JBuilder!");
else
if ((str1 == "paopaomj")&&(str2 != "1234567"))
textField3.setText("Incorect password! Retry...");
else
textField3.setText("Not such a user.");

}

是不是这几个if else哪里出问题了,我脑袋糊涂了,大家帮忙看看,谢谢!
huigll 2003-10-09
  • 打赏
  • 举报
回复
用strcmp
strcmp(str2, "1234567")

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧