char Leerzeichen



  • hi all,
    Ich will in meinem Programm überprüfen, ob ein Array vom Typ char ein Leerzeichen enthält. Dies hab ich nach dem folgenden Muster versucht:

    if( zeichen[i]==" "){...}
    

    Jedoch hat es nicht funktioniert.
    Warum das? Und wie mach ich es richtig?



  • statt " " nimm ' '
    mit "" vergleichst du mit der adresse eines char[], bzw. char*, nicht das zeichen selber. das sollte bei deinem code der compiler schon anmeckern.
    🙂



  • " " bezeichnen ein null-terminiertes character-<name-vergessen>, was du suchst ist ' ', was ein einzelnes Zeichen darstellt.
    Oder du nutzt gleich str::find(), falls zeichen vom Typ std::string ist.



  • hey danke für eure schnellen Antworten.
    Aber wenn ich es mit ' ' versuche erhalte ich eine Fehlermeldung:
    ANSI C++ forbids comparison between pointer and integer

    Das verstehe ich gar nicht:P. Weil ich weder einen pointer noch einen int benutze. Bitte um Aufklärung 💡



  • Wie ist denn "zeichen" deklariert?



  • char zeichen[77][3]={"2"," ","3","4"," ","5","6"," "}
    


  • Da haben wir doch schon den Übeltäter 😃 Öhm, wie erklär ich das jetzt?

    Aaaaaalso, alles was in '' ist, muss ein einzelnes Zeichen sein, ein char. Alles was in "" ist, ist ein char[]. Deine Variable "zeichen" hat also 77 mal jeweils 3 chars als Typ, was du ja eigentlich gar nicht wolltest (so wie ich das verstanden hab).
    mit "2" machst du eigentlich das: char blubb[] = { '2', '\0' }; , halt ohne Variablendeklaration, aber damit du erkennst, was das für ein Typ ist 😉
    Wenn "zeichen" wirklich nur einzelne Zeichen beinhalten soll, dann machs so:
    char zeichen[] = { '2', ' ', '.', ... };



  • vielen Dank für deine Antwort. Jetzt hab ich alles verstanden... Du bist ein Schatz 😉


Anmelden zum Antworten