第2关:模拟智能锁的虚位密码功能-使用string类 c++
时间: 2024-10-13 09:08:38 浏览: 49
在C++中,模拟智能锁的虚位密码功能通常涉及设计一个字符串处理类,其中包含输入、验证和隐藏真实密码的功能。这里我们可以创建一个名为`SmartLock`的类,它有一个私有变量`_password`存储实际密码,而用户可以输入的是由虚位字符组成的"密码"。
```cpp
#include <iostream>
#include <string>
class SmartLock {
private:
std::string _password; // 实际密码,例如 "123456"
public:
void setPassword(const std::string& password) {
_password = password;
}
bool validatePassword(const std::string& input) const {
// 模拟虚位密码验证,比如允许用户输入 'A' 对应 '1', 'B' 对应 '2' 等
for (size_t i = 0; i < input.size(); ++i) {
if (input[i] >= 'A' && input[i] <= 'Z') input[i] -= 'A' - '0';
else if (input[i] >= 'a' && input[i] <= 'z') input[i] -= 'a' - '0';
}
return _password == input; // 如果转换后的输入等于实际密码则返回true
}
void hideActualPassword() {
std::cout << "请输入虚位密码:" << std::endl;
std::string input;
getline(std::cin, input);
if (!validatePassword(input)) {
std::cout << "错误,密码无效!" << std::endl;
} else {
std::cout << "欢迎,密码正确!" << std::endl;
}
}
};
int main() {
SmartLock lock;
lock.setPassword("123456"); // 设置实际密码
// 用户尝试输入虚位密码
lock.hideActualPassword();
return 0;
}
阅读全文