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.