编写一个程序,在已设置好若干个用户名⼀口令后,通过输入用户名,查找对应的口令,连续执行此过程直到end

2025-02-24 04:33:20
推荐回答(3个)
回答1:

我对C++了解得不多,希望我的回答能帮助你,
string s.
你这里定义的s是一个类的对象,strcmp里面只能用const char * 类型,你这2种类型不一样,所以会这样提示。

回答2:

第一,strcmp 不能比较 string 类型。
第二,cin 没有重载 string 操作。
不过就是修改后能运行,也查不出任何内容,因为 user3 的内容是空的,结果肯定是不存在。
修改后如下:
#include
#include
using namespace std;
class Cuser
{
public:
Cuser(){};
Cuser(string username,string password);
void Search(string name);
private:
string m_user;
string m_pass;
};
void Cuser::Search(string name)
{
if (strcmp(name.c_str(),"end")==0)
{
exit(0);
}
else if (strcmp(name.c_str(),m_user.c_str())==0)
{
cout<<"对应的密码是:"< }
else
{
cout<<"不存在"< exit(0);
}
}
Cuser::Cuser(string username,string password)
:m_user(username),m_pass(password)
{
}
void main()
{
Cuser user1("huang","123456");
Cuser user2("zhang","123");
string s;
char p[50]="";
cin>>p;
s=p;
Cuser user3;
user3.Search(s);
}

回答3:

#include
#include
using namespace std;
class Cuser
{
public:
Cuser(){};
Cuser(string username,string password);
bool Search(string name);//////函数变成bool型
private:
string m_user;
string m_pass;
};
bool Cuser::Search(string name)////////////////////////////////
{
if (strcmp(name.data(),"end")==0)//////////////////////////////
{
return 0;
}
else if (strcmp(name.data(),m_user.data())==0)/////////////////////////
{
cout<<"对应的密码是:"< return 1;
}
else
{cout< cout<<"不存在"< return 0;
}
}
Cuser::Cuser(string username,string password)
:m_user(username),m_pass(password)
{
}
void main()
{
Cuser user1("huang","123456");////这里应该用数组,或指针,
Cuser user2("zhang","123");
string s;
cin>>s;
Cuser user3[3];//////////////////////////////////
for(int i=0;i<2;i++){
switch (i)
{
case 0: user3[i]=user1;break;
case 1: user3[i]=user2;break;
default:break;
}
if(user3[i].Search(s)) break;/////////////////////////////
}
getch();
}