本关任务:编写程序模拟智能锁的虚位密码功能。智能锁有一个功能,为了防止在输入密码的时候被偷窥,可以让用户输入一连串数字,其中隐藏着真实密码,请编写一个函数virtualpwd,接收用户输入的虚位密码后,判断是否包含真实密码,若包含,则返回1,否则返回0。#include<iostream> #include<string> using namespace std; //C++ string类的用法 //编写程序模拟智能锁的虚位密码功能。 //智能锁有一个功能,为了防止在输入密码的时候被偷窥,可以让用户输入一连串数字, //其中隐藏着真实密码,请编写一个函数virtualpwd,接收用户输入的虚位密码后, //判断是否包含真实密码,若包含,则返回1,否则返回0。 //此处给出virtualpwd函数的定义 //------------------------------------------------- int main() { int result;//存放密码比对结果 //设正确密码为“666666” string pwd = "666666"; //srcpwd为用户输入的虚位密码 string srcpwd; //补全代码:用户输入虚位密码: //------------------------ //此处给出:调用 virtualpwd函数并输出结果 //------------------------------------ if(result == 1) { cout << "密码正确" << endl; } else { cout << "密码错误" << endl; } return 0; }
时间: 2023-08-15 07:22:03 浏览: 178
下面是函数virtualpwd的定义和完整代码:
```
int virtualpwd(string srcpwd, string pwd)
{
int len = srcpwd.length();
int pwd_len = pwd.length();
for(int i = 0; i < len; i++)
{
if(srcpwd[i] == pwd[0])
{
int j = 1;
while(j < pwd_len && i + j < len && srcpwd[i+j] == pwd[j])
{
j++;
}
if(j == pwd_len) return 1;
}
}
return 0;
}
int main()
{
int result;//存放密码比对结果
//设正确密码为“666666”
string pwd = "666666";
//srcpwd为用户输入的虚位密码
string srcpwd;
//用户输入虚位密码
cout << "请输入虚位密码:";
cin >> srcpwd;
//调用 virtualpwd函数并输出结果
result = virtualpwd(srcpwd, pwd);
if(result == 1)
{
cout << "密码正确" << endl;
}
else
{
cout << "密码错误" << endl;
}
return 0;
}
```
函数virtualpwd的原理是:对于用户输入的每个字符,依次与正确密码的第一个字符比较,如果相同,则继续依次比较后续字符,直到比较完成或者有不同的字符为止。如果比较完成后,所有字符都相同,则返回1,表示包含正确密码,否则返回0,表示不包含正确密码。
阅读全文