Verhalten von char und (char *)



  • Hallo,
    ich habe mir ein kleine Funktion gebaut, dasd heisst ich habs versucht und bin kläglich gescheitert. Die Funktion soll aus einem (char 😉 einen Befehl auslesen und ausführen.

    void execute(char *text)
    {
      char command[9];
      int a = 0; //Counter
    
      while ( text[a+1]!='\0' && text[a+1]!=' ' && a<9) {
        command[a] = text[a+1];
        a++;
     }
     command[a] = '\0';
    
     if ( command == "help" ) {
       CHAThelp();
     } else { 
       printf ("%s: Kein gueltiger Befehl\n",command);
     }
    }
    

    So wie es jetzt ist scheitert es am Vergleich command == "help". Für '\help' meldet er: "help: Kein gueltiger Befehl\n".
    Wenn ich jetzt aus char command einen Zeiger mache (char *command) dann liefert printf ("%s",command) komischerweise nur den ersten Buchstabe, auch wenn der String länger ist.
    Und warum funktioniert sowas wie command = "help"; noch nichteinmal ??
    Wahrscheinlich mache ich einen grundlegenden (Anfänger-)Fehler, bitte klärt mich auf 😕

    Für eine Korrektur der Funktion und vielleicht ein bischen Lesestoff zum Thema wäre ich sehr dankbar 🙂
    ➡ fnord





  • dankeschön


Anmelden zum Antworten