我的if语句与char比较是不是有效,有什么想法吗?

时间:2015-02-06 18:46:17

标签: c++ if-statement string-comparison

这是我的代码

char un [50] = "Username";
char pw [50]=  "Password";
char unapp[50];
char pwapp[50];

cout << "Username: ";
cin >> unapp;
system("CLS");
cout << "Username: ";
cout <<  unapp <<endl;
cout << "Password: ";
cin >> pwapp;
system ("pause");

if (unapp == un)
{
          cout <<"Gz" <<endl;
          system ("pause");
          }

cout << unapp <<endl;
cout << un <<endl;

system ("pause");

return 0;

出于某种原因,它不会运行if语句,即使之后我打印了unappun以查看它们是否相同且确定它们是否相同依然没有??但是,如果我使用int s,它会起作用。

2 个答案:

答案 0 :(得分:2)

要比较两个char*,您应该使用strcmp

if (strcmp (unapp ,un) != 0) {}

另一种选择是使用std::string

答案 1 :(得分:0)

由于数组衰减为指针,你所做的是比较指针,而不是数组的内容。

您实际要做的是比较这些指针所指向的缓冲区(或字符串)。为了做到这一点,只需使用strcmp作为Jerome L解释,或者只是实现一个遍历数组所有元素的循环,然后进行比较,直到找到'\ 0'终结符。