CString hochzählen lassen



  • Hi Leute,

    als totaler Newbie sowohl C++ als auch MFC bin ich mal auf eure Hilfe
    angewiesen 😋

    Ich hab eine Testanwendung in der ich MFC aktiv habe.
    Nun nutze ich einen CString und der hat den Wert "a4".

    Kann ich einen CString denn hochzählen lassen? Also +1 meine ich.
    Da soll am Ende dann "b5" rauskommen.

    Greetz
    Frex



  • Mit dem operator [] bekommst Du aus einem CString einen char an einer bestimmten Position. Wenn Du den als integer hochzählst, würdest Du den nächsten Eintrag aus der ASCII-Tabelle bekommen. Also bei a=97 wird zu b=98.



  • Hmm so ganz verstanden hab ich es noch nicht 😕



  • Hmm... ganz einfach... nimm dir ne mal ne ANSI-Zeichensatz Tabelle zur Hand. Dann siehst du, das jedem Zeichen eine Zahl zugewiesen ist... wenn du also deinen char hochzählst wird dann das Zeichen, das der um 1 größeren Zahl zugewiesen ist zugewiesen. d.h. Hol dir aus deinem CString jedes einzellne char, zähls hoch, fertig.

    Nen Sample... nimm bsw. einmal: http://www.dtp-praxis.de/wissen/datei/ansi.pdf

    Dann haben wir bsw den String "ab9" ... dann zählst du jedes einzelle char davon hoch. Da a=97 und b=98 9=57, würde das jeweils hochgezählt. Ergebnis:
    bc:

    D.h. müsstest du das, wenn du bsw. 9 hast eigentlich ne 10 daraus machen... beim hochzählen würde das aber net so sein.



  • So ohne weiteres geht es nicht. Du musst halt den String aussereinander nehmen.
    Wenn das erste Zeichen ein Buchstabe ist und der Rest eine Zahl ist es einfach:
    mit der Mid-Methode Wert auslesen, zu einer Zahl konvertieren, erhöhen und dann wieder zum String Formatieren mit der Format-Methode.


Anmelden zum Antworten