我想查找用户输入的密码是有效还是无效。对于这种情况,有效密码是包含至少一个大写字母,一个小写字母,一个数字和一个美元符号($)的密码。当我搜索美元符号时,编译器会抛出错误:
ISO C ++禁止在指针和整数
之间进行比较
这是我搜索美元符号的方式:
for(int i = 0; i < x.length(); i++) {
if(x[i] == "$") {
dlr = 1;
}
}
这是完整的计划:
#include <iostream>
#include <string.h>
using namespace std;
int main () {
string x("");
cin >> x;
bool upr = 0;
bool lwr = 0;
bool dlr = 0;
bool num = 0;
for(int i = 0; i < x.length(); i++) {
if(isupper(x[i])) {
upr = 1;
}
if(islower(x[i])) {
lwr = 1;
}
if(x[i] == "$") {
dlr = 1;
}
if(isdigit(x[i])) {
num = 1;
}
}
if(upr == lwr == dlr == num == 1) {
cout << "The password is valid";
} else {
cout << "The password is invalid";
}
cout << dlr;
return 0;
}
答案 0 :(得分:1)
"$"
是 C字符串,因为它使用双引号,因此它与const char*
类似。你想要的是一个角色:
if(x[i] == '$') {
// ...
}
'$'
使用单引号并且是字符,或char
,这是一个整数值。此处"integer"不得与特定的int
类型混淆。