(C++) string Abfrage mit einem Leerzeichen!?

S

Slayer-Stiff

Hallo. Ich bin neu hier und/aber habe mal die SuFu benutzt zum Thema Leerzeichen und string. Da kamen auch direkt viele Topics und hab mir auch glaub ich fast alle durchgelesen, aber meine Frage blieb dennoch unbeantwortet.

Ich habe folgenden Code:
Code:
#include <iostream.h>
using namespace std;

int main(void)
{
    
   string a;
   cout<<"Gib mal was ein: ";
   
   cin >> a;
   
   if(a=="Hallo du")
   {
        cout<<"das is unhöflich\n";
   }
   
   if(a=="Hallo Sie")
   {
        cout << "Sehr höflich!\n";
   }
   
   else
   {
     
         cout << "mit dir rede ich gar nich mehr!\n";
   }

system("PAUSE");
return 0; 
}

Aber der erkennt die if-Eingaben nicht. Also wenn ich "Hallo du" (natürlich ohne die ") eingebe, dann erkennt er das nicht und spuckt die else-Funktion aus.
Was mache ich falsch?
Es muss nich unbedingt mit string sein, aber hauptsache es geht. Ich hoffe allen ist klar was ich eigtl. will oder? Ich hoffe doch ;) Sonst bitte fragen!

Danke im voraus!
MfG
Slayer-Stiff
 
Hi.

Nach deiner Beschreibung möchtest du wohl die ganze Zeile einlesen.

C++:
string zeile;

cout << "Gib was ein: ";

if (getline(cin, zeile)) {
  if (zeile == "Hallo du") {
    ...
  }
}
Gruß
 
Hi !

Ich hol den Thread einfach mal wieder hoch ;)

Also ich will das ganze in c machen, also nicht c++

Wenn ich was eingebe, kommt beim kompilieren immer die Meldung 'comparsion between pointer und integer' .. Hab schon überall gesucht, aber keine lösung gefunden.

Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>



char befehl;
int main () 
{   
    
    printf("Bitte Befehl eingeben :");
    scanf("%d",befehl);
    befehl = getchar();
    
    if ( befehl == 'test')
    {
    printf ("erfolgreich bestanden\n");
    }

   else 
     prinff ("befehl nicht bekannt");
return 0;
}

schonmal danke für eure Hilfe ;)
 
Hey,

ich bin zwar ziehmlicher Anfänger in C, aber mir fällt spontan sofort auf, das bei deiner scanf Anweisung beim Übergabeparameter noch ein & fehlt! Dann stellt sich mir noch die Frage ob du mit deiner scanf Anweisung Buchstaben oder nur int-Zahlen einlesen willst! Dann wäre das %d nämlich auch falsch! Versuchs doch einfach mal mit:

scanf(" %c",&befehl);

Außerdem müsstest du soweit ich weiß noch eine Endbedingung für dein Einlesen mit getchar() definieren, ansonsten bist du in einer Endlosschleife mit deiner Eingabe!
Ich bin momentan auch gerade an einer ähnlichen Übung, bei der ich alle Ziffern/Buchstaben die ich einlese in einem Array speichere und da hab ich folgenden Code für sowas verwendet:
Code:
int text[256];
char c;

while((c=getchar())!=EOF)  text[ c]++;

Mein Problem ist jetzt noch das ich die EOF Bedingung dadurch bekomme, indem ich "Enter StrgZ Enter" drücke und das irgendwie nicht ganz schön ist!
Falls jemand einen Tipp für mich hat, wie ich die EOF Bedingung anders bekomme wäre ich sehr Dankbar!

Gruß
 
Zurück