我無法讓我的密碼驗證程序正常工作。我的循環似乎只迭代一次,我只是把它作爲輸出,看看它是否不斷迭代,但不是。我不知道爲什麼,布爾運算符正在工作,但它只是迭代一次,如果我的第一個字母是小寫字母,那麼它會說我需要一個大寫字母和一個數字,反之亦然,如果我的第一個字符是數字或大寫。這是一項家庭作業,但我有點失落。任何幫助將不勝感激。字符串驗證字字符循環將無法正常工作
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
int main()
{
const int LENGTH = 20;
char pass[LENGTH];
cout << "Enter a password, that's at least 6 characters long, one uppercase, one lowercase letter ";
cout << " and one digit." << endl;
cin.getline(pass,LENGTH);
bool isdig = true;
bool isdown = true;
bool isup = true;
bool correct = false;
for(int index = 0; correct == false; index++)
{
cout << "it" << endl;
if(isupper(pass[index]) == 0)
{isup = false;}
if(islower(pass[index]) == 0)
{isdown = false;}
if(isdigit(pass[index]) == 0)
{isdig = false;}
if(isdig == true && isup == true && isdown == true)
{correct = true;}
if(index = LENGTH - 1)
{
if(isdig == false)
{cout << "Your password needs a digit." << endl;}
if(isup == false)
{cout << "Your password needs an uppercase letter." << endl;}
if(isdown == false)
{cout << "Your password needs a lowercase letter." << endl;}
cout << "Re-enter another password. " << endl;
cin.getline(pass,LENGTH);
index = 0;
isdown = true;
isup = true;
isdig = true;
}
}
system("pause");
return 0;
}
你嘗試過使用調試器?我看到你正在運行MVS ... –
nah我沒有讓我嘗試編輯:ive使用本地Windows調試器在MVS – bigdog225