Ниже представлено одно из решений задания по дисциплине ДСРПО.
Задание
Написать генератор паролей, длиной от 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++.