element von string vergleichen



  • string text;
    string temp=" ";
    wieso kann ich folgendes nicht machen:

    for (int i=0; i<text.length(); i++)
    {
               if (text[i]==temp)
               {
                           Blabla;
               }
    }
    

    meldung in if-Zeile:
    Illegal structure operation.



  • Gute Frage.
    Weil es noch eine andere Möglichkeit gibt?!

    if(Text.Pos(temp) > 0)
    {
    
    }
    

    Kommt jetzt halt auf den Spezialfall an. Normalerweise geht das so recht gut (siehe oben). Wenn du jetzt aber wirklich jeden einzelnen Buchstaben vergleichen willst:

    for (int i = 0; i < text.Length(); i++)
    {
    if(text.IsDelimiter(" ", i) == true)
    {
    //Bsp: text.Delete(i,1);
    }
    }



  • Danke!



  • Eigentlich ist das keine besonders gute Frage. 😉

    Du kannst einem einzelnen Char nun mal keine Zeichenkette zuweisen, auch nicht für einen Vergleich, sondern eben nur ein einzelnes Zeichen.

    if (text[j] == temp[1])
      Blabla;
    

    Wenn es tatsächlich nur um einzelne Zeichen geht solltest du temp gleich als Char statt als String deklarieren, oder du vergleichst direkt.

    char temp = ' ';
    if (text[j] == temp)
      Blabla;
    
    if (text[j] == ' ')
      Blabla;
    

    Siehe auch hier.


Anmelden zum Antworten