Buchstaben generieren



  • Hallo!

    Ich will einen Keygen für ein Programm von mir schreiben.
    Er sol zuerst eine 2-stellige zahl , dann einen buchstaben (groß oder klein, egal),wieder 3Zahlen und 1 Buchstaben.
    Mein Problem ist nun:
    Wie kann ich dann Die 'Zufallsbuchstaben' generiern?!?
    Wie das mit Zahen
    ([cpp]math.h
    rand()%...)
    geht weis ich ja.vielleicht muss man das ja nurnoch einwenig erweitern
    bzw. umwandeln?!?
    danke für jede hilfe
    martinustreveri



  • martinustreveri schrieb:

    ...math.h...

    Du meinst wohl <cmath>

    martinustreveri schrieb:

    Wie kann ich dann Die 'Zufallsbuchstaben' generiern?!?

    Ascii-Codes sind dir bekannt?

    Ansonsten versuch einfach mal auf einen character eine Zahl zu addieren...

    char test = 'a';
    test += 4;

    Edit: such einfach mal nach ASCII Codes



  • int zahl = ( rand() % 26 ) + 97;
    char buchstabe = zahl;
    

    Das erstellt dir einen kleinen Buchstaben von a bist z.
    Erklärung:
    Dem Integer zahl wird eine zufällige Zahl von 0 bis 25 erstellt. Dazu wird dann 97 addiert. Die zugewiesene Zahl reicht dann von 97 bis 122. Und das sind die ASCII-Werte der Kleinbuchstaben a bis z.
    Dann den Integer-Wert an ein Char abgeben und du hast deinen Buchstaben.

    Mit freundlichen Grüßen
    DerRatlose



  • ja.sorry hatte mich verschreiben.
    und: ja, danke, funktioniert super.
    jetzt habe ich es geafft.



  • Zur Info: srand() dient dazu, den seed zu setzen. mit rand() aus <cmath> bekommst du eine zufallszahl. die kannst du verwenden, um dir einen Zufälligen Buchstaben in einer Spanne des ASCII Zeichensatzes ausgeben zu lassen.
    Übersicht:
    http://www.asciitable.com/

    Du kannst allerdings auch alle gültigen Zeichen in ein Array schreiben und einen pseudo-zufälligen Index generieren.

    #include <iostream>
    #include <vector>
    #include <cmath>
    #include <ctime>
    
    int main()
    {
        std::srand(std::time(0));
    
        std::vector<char> mychars;
        for(char i('0'); i <= '9'; ++i)
            mychars.push_back(i);
        for(char i('A'); i <= 'Z'; ++i)
            mychars.push_back(i);
        for(char i('a'); i <= 'z'; ++i)
            mychars.push_back(i);
    
        std::cout << "Wieviele zufällige Buchstaben? ";
        int n = 0;
        std::cin >> n;
        for(int i = 0; i < n; ++i)
            std::cout << mychars[rand() % mychars.size()];
        std::cout.flush();
    }
    

    Code ist nicht getestet!



  • DerRatlose schrieb:

    int zahl = ( rand() % 26 ) + 97;
    char buchstabe = zahl;
    

    Das erstellt dir einen kleinen Buchstaben von a bist z.
    Erklärung:
    Dem Integer zahl wird eine zufällige Zahl von 0 bis 25 erstellt. Dazu wird dann 97 addiert. Die zugewiesene Zahl reicht dann von 97 bis 122. Und das sind die ASCII-Werte der Kleinbuchstaben a bis z.
    Dann den Integer-Wert an ein Char abgeben und du hast deinen Buchstaben.

    Mit freundlichen Grüßen
    DerRatlose

    donköö!
    funzt auch super


Anmelden zum Antworten