Zufallsbuchstaben...

Hallo, ich versteh nicht wieso mein Code nicht das macht, was ich will. Das Programm sollte eine beliebig lange Folge an Zufallsbuchstaben/zahlen/zeichen ausgeben. Hab's bis jetzt mit den Grossbuchstaben gemacht (fetter Teil) doch
cout << "pw:" <<pw; gibt mir die Folge nicht aus.

Am Schluss sollte es ein Passwortgenerator werden.

Code:
#include <string.h>
#include <iostream>
#include <cstdlib>
using std::cout;
using std::cin;

int zufall;
int laenge;

 char alphabetklein[] = {'a','b','c','d','e','f','g','h','i','k','l','m','n','o','p',' q',' r','s','t','u','v','w','x','y','z'};
 char alphabetgross[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
 char zahlen[10] = {'1','2','3','4','5','6','7','8','9','0'};
 char sonderzeichen[12] = {'!','(',')','[',']','=','?','@','$','&'};
 char pw[10];
[B]void buchstaben() //GROSSE
{
     srand(time(NULL));
     cout << "Wie lang soll das Passwort sein?"; cin >> laenge;
     
     for (int i=1; i < laenge+1; i++)
     {
       zufall =  rand()%27;
       pw[i] = alphabetgross[zufall];
     }
     
     
     cout << "PW:" <<pw;
     cout << "\n\n\n";
     system ("pause");
    
}[/B]


void zahlenx()
{
     cout << "Wie lang soll das Passwort sein?"; cin >> laenge;
     
}

void zahlenundbuchstaben()
{
     cout << "Wie lang soll das Passwort sein?"; cin >> laenge;
     
}

void mix()
{
     cout << "Wie lang soll das Passwort sein?"; cin >> laenge;
     
}


int main()
{
    

 
 int auswahl;

 
 cout << "Aufgabe waehlen:\nZahlen<1>\nBuchstaben<2>\nZahlen+Buchstaben<3>\nMix<4>"; cin >> auswahl;
 switch (auswahl)
 {
 case 1: 
      {
      zahlenx();
      break;
      }
 case 2: 
       {
      buchstaben();
      break;
      }
 case 3: {
      zahlenundbuchstaben();
      break;
      }
 case 4: {
      mix();
      break;
      }
 default: {cout << "\nUngueltige Eingabe. Programm wird beendet...";
                  system ("pause");
                  return 0;}
}    
}

Edit: Scheinbar kann man den Code nicht formatieren.
Gemeint sind die Zeilen 15-31!
 
hehe kleingkeit.

Code:
void buchstaben() //GROSSE
{
     int i=0;
     srand(time(NULL));
     cout << "Wie lang soll das Passwort sein?"; cin >> laenge;

     for (i=0; i <laenge; i++)
     {
       zufall =  rand()%27;
       pw[i] = alphabetgross[zufall];
     }


     cout << "PW:" <<pw;
     cout << "\n\n\n";
     system ("pause");

}

mfg
 
^^ danke... :D aber wieso kann man i nicht so deklarieren wie ich das gemacht habe? geht doch sonst auch oder nicht ?!
 
Wieso eigentlich so kompliziert? Passenden teil aus der ASCII-Tabelle nehmen, und dann zeichenweise ASCII in Buchstabe umwandeln...
 
Ich wollte noch erwähnen, dass du modulo 26 statt 27 nehmen solltest, da bei zufall=26
das Array zu Ende ist und irgendwas anderes herauskommt(ich vermute mal eine '1').
 
Zurück
Oben