Buchstaben hochzählen lassen?



  • Hi,

    ich würde gerne Buchstaben hochzählen lassen, um damit in meiner
    SQL-Abfrage weiter arbeiten zu können.
    Ich brauche praktisch Ergebnisse wie aaa, bbb, ccc aber eben auch später
    in weiteren Durchläufen sowas wie abcde, bcaef,aabsa usw.

    Nun stelle ich mir die Frage, wie man das ohne viel Gewurschtel am besten
    angeht. Ich habe folgendes bisher versucht:

    for(int zahl=64;zahl<91;zahl++)
    {
    char zeichen;
    zeichen = (int)zahl;
    MessageBox(zeichen);
    }
    

    Jetzt müsste man es ja bis zur Unkenntlichkeit verschachteln,
    um theoretisch alle Buchstabenkombinationen ermitteln zu können 😕

    Gibt es da evtl. einen besseren Weg für?





  • was willst du denn bruteforcen? ^^



  • Lass das doch SQL machen - CONCAT sei ein stichwort...



  • TGGC schrieb:

    Mit Rekursion z.b.

    Aber warum nicht etwas lesbarer: for( char c='A'; c <= 'Z'; ++c )?

    Wo sind die Makros für bedingte Compilierung? Das geht auf einigen Plattformen mächtig in die Hose.



  • ~john schrieb:

    TGGC schrieb:

    Mit Rekursion z.b.

    Aber warum nicht etwas lesbarer: for( char c='A'; c <= 'Z'; ++c )?

    Wo sind die Makros für bedingte Compilierung? Das geht auf einigen Plattformen mächtig in die Hose.

    Hmm vll sollte man noch explizit nach short casten,
    aber static_cast<short>('A') sollte eigentlich imo auf kein Plattform Probleme verursachen. Deswegen ist es ja ein Char- und kein Stringliteral.

    Oder kannst du ein Beispiel, am besten mit Grund, warum es da nicht gehen sollte, nennen?



  • ~john schrieb:

    TGGC schrieb:

    Mit Rekursion z.b.

    Aber warum nicht etwas lesbarer: for( char c='A'; c <= 'Z'; ++c )?

    Wo sind die Makros für bedingte Compilierung? Das geht auf einigen Plattformen mächtig in die Hose.

    uups.

    #if 'i'+1!='j'
    #error Hose
    #endif
    for( char c='A'; c <= 'Z'; ++c )
    

    Welche Plattformen?



  • Was anderes:
    Der Pre-Inkrementoperator sollte in dieser Schleife von TGGC durch einen Post-Inkrementoperator getauscht werden, falls man alle Buchstaben von A-Z haben will und nicht die Chars von 'B' -> ('Z'+1) ...

    Zumindest falls mich meine Sinne nicht ganz verlassen haben 😉



  • branleb schrieb:

    Zumindest falls mich meine Sinne nicht ganz verlassen haben 😉

    Haben sie, und zwar vollständig. :p

    Die Wahl von Prä- oder Postfixoperator spielt nur in dem Ausdruck eine Rolle, in dem die Inkrementierung vorgenommen wird. Und zwar entscheidet sich dadurch, ob der alte oder der bereits inkrementierte Wert zurückgegeben wird.

    Hier ist das irrelevant, da kein umschliessender Ausdruck vorkommt. Zudem finde ich es im Bezug auf Iteratoren konsistenter, für For-Inkrementierungen die Präfix-Version zu nehmen.



  • Hmm, stimmt, das wird ja erst am Ende der Schleife ausgeführt...
    Dann ist es tatsächlich egal, sorry...



  • ~john schrieb:

    TGGC schrieb:

    Mit Rekursion z.b.

    Aber warum nicht etwas lesbarer: for( char c='A'; c <= 'Z'; ++c )?

    Wo sind die Makros für bedingte Compilierung? Das geht auf einigen Plattformen mächtig in die Hose.

    warum?



  • Nexus schrieb:

    Zudem finde ich es im Bezug auf Iteratoren konsistenter, für For-Inkrementierungen die Präfix-Version zu nehmen.

    sieht aber iwie, ähm, gay aus.
    mfg
    ga++x



  • ~john schrieb:

    TGGC schrieb:

    Mit Rekursion z.b.

    Aber warum nicht etwas lesbarer: for( char c='A'; c <= 'Z'; ++c )?

    Wo sind die Makros für bedingte Compilierung? Das geht auf einigen Plattformen mächtig in die Hose.

    Auf welchen?


Anmelden zum Antworten