현재 암호가 유효한지 확인하기 위해 프로그램을 작성 중입니다. 암호는 7 자 여야하며 대문자 및 소문자 여야합니다. 현재 코드가 첫 번째 체크 길이에 도달 할 수 있지만 디버그 어설 션 오류가 발생했습니다. 나는 초기 문자열을 고쳐야한다고 확신하지만 확신 할 수 없다. 어떤 도움이라도 대단히 감사하겠습니다.디버그 어설 션 암호 확인 실패
// Lab 9
// coded by Elijah
#include <iostream>
#include <string>
#include <iomanip>
#include <cctype>
#include <cstring>
using namespace std;
string checkCharacter(string);
string checkCharacterTwo(string);
int main()
{
string capitalAnswer = "O", capitalAnswerTwo = "O";
std::string password;
cout << "Please enter a password: ";
cin >> password;
if (password.length() >= 7)
{
capitalAnswer = checkCharacter(password);
if (capitalAnswer == "y")
{
string checkCharacterTwo(password);
if (capitalAnswerTwo == "y")
{
cout << "Thank you, that is a valid password" << endl;
return 0;
}
else
{
cout << "Passwords must contain at least one lowercase letter" << endl;
main();
}
}
else
{
cout << "Passwords must include at least one uppercase letter" << endl;
main();
}
}
else
{
cout << "Passwords must be at least 7 characters long" << endl;
main();
}
}
string checkCharacter(string password)
{
string answer;
string character;
string capitalAnswer;
int number;
for (number = 0; number > password.length() || answer != "y"; number++)
{
character = password[number];
if (character >= "A" && character <= "Z")
answer = "y";
else
answer = "n";
}
{
if (answer == "y")
capitalAnswer = "y";
else
capitalAnswer = "n";
}
return capitalAnswer;
}
string checkCharacterTwo(string password)
{
string answer;
string character;
string capitalAnswerTwo;
for (int number = 0; number > password.length() || answer != "y"; number++)
{
character = password[number];
if (character >= "a" && character <= "z")
answer = "y";
else
answer = "n";
}
if (answer == "y")
capitalAnswerTwo = "y";
else
capitalAnswerTwo = "n";
return capitalAnswerTwo;
}
main()을 절대 호출하지 마십시오. http://stackoverflow.com/a/2128727/487892 – drescherjm
'string checkCharacterTwo (password);'이것은 당신의 함수'checkCharacterTwo'를 호출하지 않습니다. 이것은'checkCharacterTwo'라는 새로운 문자열 변수를 생성합니다. 이것은'password 변수. – Borgleader
나는 단지 그것을 반복하고 싶다. 그것은 main을 호출하는 것은 정말로 나쁜 생각이다. 또한 ''을 포함 할 필요가 없으므로 좋아하지 않습니다. 포함하지 마십시오. –
shuttle87