/ / Generator haseł C ++ ma spacje - c ++

Generator haseł C ++ ma spacje - c ++

Stworzyłem więc podstawowy generator haseł c ++zapyta użytkownika, jak długo ma ono wyglądać, chociaż w przypadku niektórych haseł będzie zawierać spację. EX: Hasło o długości 8 będzie czasem drukowane: 15 USD B2FD

Tak wygląda kod.

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

static const char randNum[] =
"0123456789"
"!@#$&"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
int size = sizeof(randNum);
int main() {
int length;
cout << "Enter length of password: ";
cin >> length;

srand(time(0));
cout << "Your password is: ";
for (int i = 0; i < length; i++) {
cout << randNum[rand() % size];
}
cout << endl;
system("pause");
return 0;
}

Odpowiedzi:

1 dla odpowiedzi № 1

Wygenerowane hasła nie zawierają spacji, ale znak null "".

Przyczyna tego jest taka randNum zostanie zainicjalizowany z łańcuchem zakończonym znakiem NUL, co oznacza, że randNum zawiera nie tylko znaki, które napisałeś w dosłownym, ale dodatkowo a na końcu.

W związku z tym sizeof(randNum) wynosi 68, a nie 67, jak można się spodziewać. Czasami wybierasz ten ostatni znak w pętli generującej.

Wiersz polecenia systemu Windows drukuje "" jako przestrzeń.