code wird compiliert, erfüllt aber seine funktion nicht



  • Hallo zusammen,
    folgender kleiner Code will einfach nicht funktionieren.
    Ich ruf das Programm mit der Eingabeaufforderung und dem Parameter -? auf, aber es gibt den Text trotzdem nicht aus. Was mache ich falsch??

    #include <stdio.h>  
    
    int main ( int argc , char *argv [ ] )  
    {  
    
    int zaehler;  
    /* Wenn mindestens ein Parameter angegeben wurde alle durchtesten */ 
    if (argc >1) 
    {
    
       for (zaehler = 1; zaehler<argc; zaehler++) 
           { 
                    /* Wenn ein Parameter -? ist dan Text ausgeben */ 
                    if (argv[zaehler] == "-?") 
                    { 
                    printf ("\n\nDas Programm dient zur Demonstration des\n");
                    printf ("Parameters -? , welcher diesen Text aufrief \n\n"); 
                    }
    
           }
    }
    /* wenn kein Aufruf Parameter angegeben wurde, Programm ausführen */ 
    else 
    {
         printf ("\n\nProgramm wurde ohne -? aufgerufen\n\n");
    }                                     
    }
    

    Thx im vorraus



  • In Zeile 14 ist "strcmp" Dein Freund!

    if(!strcmp(argv[1], "-?"))
    


  • in c lassen sich zeichenketten nicht mit operatoren vergleichen, da es allgemein keine operaten gibt, die auf einem array funktionieren. bei arrays muss immer jedes element einzeln behandelt werden. dazu gibt es funktionen, wie im vorherigen post zu lesen ist...



  • ok, es funktioniert. Danke 👍


Anmelden zum Antworten