В настоящее время я кодирую программу, которая проверяет пароль, чтобы узнать, действительно ли он. Пароль должен быть 7 символов и иметь прописную и строчную буквы. Мой текущий код может достигать первой длины проверки - но затем имеет отказ от отчета об отладке. Я считаю, что мне нужно исправить исходные строки, но я не уверен. Любая помощь будет принята с благодарностью.Debug Assertion Не удалось проверить пароль
// 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 (пароль);' это не вызывает вашу функцию 'checkCharacterTwo', это создает новую строковую переменную с именем' checkCharacterTwo', которая является точной копией пароля 'переменная. – Borgleader
Я просто хочу повторить, что это действительно плохая идея назвать main. Также не нравится, как вам нужно включить '', поэтому не включайте его. –
shuttle87