[C++] Vergleich von const char * und Leerzeichen.

  • Ich geh zu dieser späten Stunde gleich noch die Wände hoch ...
    Also, dreht sich um folgendes.

    Ich lese von einem String immer ein Zeichen in einen const char *.
    Nun will ich vergleichen, ob dieses Zeichen ein Leerzeichen ist.

    -> Geht nicht.
    Ok, dacht ich mir, so kannste den Vergleich knicken, muss also irgendwie anders gehen.
    Kommen wir nun zu Google:
    Dort kann man viele nützliche Sachen finden, leider gehen die bei mir alle nicht ...

    Zitat

    /opt/progs/c++/messalla/src/game.h:75: Fehler: ISO-C++ verbietet Vergleich zwischen Zeiger und Ganzzahl

    Zitat

    /opt/progs/c++/messalla/src/game.h:75: Fehler: Typumwandlung von »const char*« nach »int« verliert Genauigkeit

    Kurzum: Hilfe, kann mir jemand sagen, wie ich das nun schaffe?

  • Also ich würde das ein kleinwenig anders machen, um Probleme zu vermeiden:

    1. "strlen(map.c_str())-1" ist das selbe wie "map.size()" und geht schneller
    2. anstatt const char* Variable würde ich ein einfaches char nehmen (du willst sowieso nur ein Zeichen haben) und das mit map[i] belegen

    Damit sollte auch die if Anweisung funktionieren, vorausgesetzt du nutzt die einfachen Anführungszeichen.

    Noch ein Tipp: falls du wirklich mal c-strings vergleichen willst (char*), nimm die Funktion strcmp(...), die ist für solche Zwecke gedacht.

  • Naja, ein einfacher Character ist intern auch nichts weiter als ein Integer. Deswegen kann man diese beiden Typen eigentlich problemlos vergleichen.

    Also folgender Code funktioniert bei mir wunderbar:

    PS: ich versteh eigentlich nicht was die Variable iHelp soll, aber wahrscheinlich ist das nicht der ganze Quellcode...