Così si fa un passaggio in meno:
codice:
int i = 0;
int b = 0;
char stringa[lunghezza];
srant(time(NULL));
for (i=0; i<lunghezza; i++) {
   b = rand() % 2;
   stringa[i] = ((char) (rand() % 26) + 65) | b ? 32 : 0;
}