Auf AnsiString* einzeln zugreifen
-
Guten Tag,
ich hab eine AnsiString* und möchte nun auf einzelne Buchstaben des Inhalts zugreifen. Mit einem AnsiString ist es ja klar: meinString[1]. Aber wie mache ich das mit einem Pointer?
Mit freundlichen Grüßen,
blck
-
Dereferenzieren nennt sich das:
*AStrName[0]
-
Tim06TR schrieb:
Dereferenzieren nennt sich das:
*AStrName[0]
Habe ich schon versucht; erhalte dann immer folgende Fehler:
[C++ Fehler] Verarbeitung.cpp(25): E2093 'operator' ist im Typ 'AnsiString' für Argumente desselben Typs nicht implementiert
[C++ Warnung] Verarbeitung.cpp(32): W8075 Verdächtige Zeigerumwandlung*Vielleicht ein, zwei Details mehr:
int* Verarbeitung::analysiereSchluessel(AnsiString* pKey) { int schluesselAnalyse[4] = {0,0,0,0}; char alpha[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; for (int i=1; i<5; i++) { for (int j = 0;j<= 26; j++) { if(*pKey[i]==alpha[j]) //hier liegt der Fehler! { schluesselAnalyse[i-1]=j; } } } return(schluesselAnalyse); }
Der AnsiString besteht immer aus 4 Zeichen. In das int-Array "schluesselAnalyse" soll nun immer gespeichert werden, den wievielten Buchstaben im Alphabet (char-Array "alpha") das aktuelle Stringzeichen beinhaltet.
-
Hallo
Da fehlen noch Klammern :
if((*pKey)[i]==alpha[j]) // Erst dereferenzieren, dann []-Op
bis bald
akari
-
btw: wieso übergibts du ihn überhaupt als Zeiger? Referenz würde doch reichen [?]
EDIT: (Wenn du ihn nicht kopieren willst.)
-
akari schrieb:
Hallo
Da fehlen noch Klammern :
if((*pKey)[i]==alpha[j]) // Erst dereferenzieren, dann []-Op
bis bald
akarimerci beaucoup