#include <iostream>
#include <string.h>
#include <limits>
using namespace std;
int main()
{
setlocale(0, "");
cout << "требования к паролю:\nдлина пароля от 8 символов\n\nналичие хотя бы одной прописной буквы,\nналичие хотя бы одной строчной буквы,\nналичие хотя бы одной цифры,\nналичие хотя бы одного символа пунктуации, " << endl;
string password;
int lengt;
while (true)
{
cin >> password;
cin.clear(); // на случай, если предыдущий ввод завершился с ошибкой
cin.ignore(numeric_limits<streamsize>::max(), '\n');
lengt = password.length();
if (lengt > 8)
{
break;
}
cout << "плохой пароль" << endl;
lengt = 0;
}
char big[26], small[26], special[15], a = 'a', b = 'A', c = '!',numbers[10],l='0';
for (int i = 0; i < 26; i++)
{
small[i] = a;
big[i] = b;
a++;
b++;
}
for (int i = 0; i < 15; i++)
{
special[i] = c++;
}
for (int i = 0; i < 10; i++)
{
numbers[i] = l++;
}
bool d = false, e = false, f = false, g = false;
for (int j = 0; j < lengt; j++)
{
for (int i = 0; i < 26; i++)
{
if (password[j] ==big[i] )
d = true;
if (password[j] ==small[i] )
e = true;
if (i < 16)
{
if (password[j] ==special[i] )
g = true;
if (i < 11)
{
if (password[j] == numbers[i])
f = true;
}
}
}
}
if (d == e == f == g == true)
cout << "хороший пароль" << endl;
else
main();
return 0;
}//done...