lima-city: Webhosting, Domains und Cloud
0 Pluspunkte 0 Minuspunkte

Wie kann ich 2 Strings vergleichen in C++?

const char *a;

a = "aaa";

if(a == "aaa") {

    //...

} else {

    // ...

}

Das funktioniert aber nicht?

von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Versuch es mit

if(std::string(a) == "aaa")
von  
0 Pluspunkte 0 Minuspunkte

Der Vergleich von Zeichenketten mit == vergleicht die Adressen im Speicher, nicht den Inhalt der Zeichenketten. Das Verhalten ist von Compiler zu Compiler sowie von Plattform zu Plattform unterschiedlich. Du kannst statt dessen die Funktion strcmp() aus der Headerdatei <cstring> verwenden.

#include <iostream>
#include <cstring> // für strcmp()

int main()
{
    const char *a;

    a = "aaa";
    
    a = "bbb";
    
    if(std::strcmp(a, "aaa") == 0) {
    
        std::cout << "1";
    
    }
    else if(std::strcmp(a, "bbb") == 0) {
    
        std::cout << "2";
    
    } else {
    
        std::cout << "0";
    
    }

    return 0;
}
von (492 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

261 Kommentare

13 Nutzer