CString nach int?
-
Hallo,
ich habe ein Problem beim verwenden eines CStrings.
Ich habe einen CString der einen Laufwerkspfad enthält, z.B. "C:\Windows\..."
Ich will nun den 1. Buchstaben des Strings (im Beispiel "C") in einen int-Wert umrechen.
(A=0, B=1, C=2, D=3, ...)Beispiel:
aus CString "C:\Windows\abc" wird 2
aus CString "F:\folder" wird 5
und so weiter...wie mache ich das?
Bin für jeden Tipp dankbar..
mfg
trequ(Ist das im MFC Forum richtig? CStrings sind eine Erfindung von Microsoft, oder?)
-
Du könntest CString::Find verwenden :
for(int i = 0; i < LaufwerksString.GetLength(); i++) { if(LaufwerksString.Find('C') == i) { AfxMessageBox("C wurde in dem String gefunden !"); } }
Hoffe konnte dir weiterhelfen !
Gruß
:: NoName ::
-
int n = Pfad[0] - 'A';
-
Hallo
CString test = "C:\\ABCDE"; int itestvar = test[0]-'A'; CString output; ouput.Format("%i", itestvar); MessageBox(output);
ergibt
"Fehler im Speicher: Die Anwendung 0xblabla verweist auf 0xblabla. Der Vorgang "read" konnte nicht ausgeführt werden..."-->>
mfg
trequ
-
Du hattest einen Schreibfehler im Variablennamen...
Habs korrigiert und ne andere Messagebox genommen - funzt.
CString test = "C:\\ABCDE"; int itestvar = test[0]-'A'; CString output; output.Format("%i", itestvar); AfxMessageBox(output);
-
Danke - funktioniert
-
ihr könnt es euch auch einfacher machen:
int wert = atoi("12345"); // CString nach int konvertieren char buffer[20]; _itoa(12345, buffer, 10); //int nach CString konvertieren (CString) buffer; // falls ihr nen CString braucht: casten
-
@Red Skall: Das geht aber nur bei Zahlen. Hier sollten Buchstaben "umgerechnet" werden.
-
stimmt, habs jetzt auch gerallt ^^ entschuldigt mich jungs ;):D