Ниже представлено одно из решений задания по дисциплине ДСРПО.
Задание
Написать генератор паролей, длиной от 8 до 32 символов, состоящий из цифр, букв верхнего и нижнего регистра и служебных символов.
Код
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
char *pgen(int N){
char * password = new char[N + 1];
for (int i = 0; i < N; i++)
{
switch(rand() % 4)
{
case 0:
password[i] = 32 + rand() % 16;
break;
case 1:
password[i] = 47 + rand() % 11;
break;
case 2:
password[i] = 64 + rand() % 27;
break;
case 3:
password[i] = 96 + rand() % 27;
break;
}
}
password[N] = '\0';
cout << endl << "Lenght of password is: " << N << endl << "Your password is: ";
return password;
}
int main(){
srand(time(NULL));
int N = 8 + rand() % 32;
while(true){
if ((N < 8) || (N > 32)) N = 8 + rand() % 32;
else if ((N >= 8) && (N <= 32)) break;
}
cout << pgen(N);
return 0;
}
Решение протестировано на IDE Dev C++.