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
    akari

    merci beaucoup 🙂


Anmelden zum Antworten