Fehlermeldung durch strcmp()



  • Hallo Freunde!
    Ich studier seit diesem Wintersemester Medieninformatik! Dort lernen wir nun u.a. die Programmiersprache C. Schön und gut... nun wollte ich eine der Übungen programmieren, hab auch schon grob im Kopf wie das Programm ablaufen soll, und bei einem Zwischentest folgende Fehlermeldung:

    [Warning] passing arg 1 of strcmp' makes pointer from integer without a cast [Warning] passing arg 2 ofstrcmp' makes pointer from integer without a cast

    Ich hab es nach viel "Probieren" aufgegeben, den Fehler beheben zu wollen 😉
    Aber ihr werdet mit garantiert sagen können, wo der Fehler liegt!

    Hier nun das "komplette" \1:

    #include <stdio.h>
    
    struct koords {
           int x;
           int y;
           }; /* struct */
    struct koords coords[4];
    char checked[8];
    
    char koordcheck()
    {
        int i;
        int k;
        int tocheck;
    
        for(i=1;i<=8;i++)
        {
           if(i<=4)
           {
           tocheck=coords[i].x;
           for(k=1;k<=4;k++)
           {
    
               if(strcmp(coords[k].x, tocheck) && k != i)
               {
                   checked[i]=0;
               }
               else
               {
                   checked[i]=1;
               }
           }
           }
           else
           {
           tocheck=coords[i].y;    
           for(k=5;k<=8;k++)
           {
               if(strcmp("1","2") && k != i)
               {
                   checked[i]=1;
               }
               else
               {
                   checked[i]=0;
               }
           }
           }
        }
    
           return 1;       
    
    } /* koordcheck */
    
    int quadrat()
    {
       if(checked[1] == 1 || checked[1] == 0)
       {
          printf("\n\nOK \n\n");
       }
       else
       {
          printf("\n\nSchlecht\n\n");
       }
    
    } /* quadrat */
    
    int main(void)
    {
    
        int i;
        int checki;
    
        printf("Dieses Programm ermittelt aus den von Ihnen eingegebenen 2-dimensionalen Koordinaten die durch diese Koordinaten aufgespannte Figur.\n");
    
        for(i=1;i<=4;i++)
        {
            printf("Geben sie bitte den x-Wert der %d. Koordinate an: ",i);
            scanf("%d", &coords[i].x);
            printf("\nNun den %d. y-Wert: ",i);
            scanf("%d", &coords[i].y);;
            printf("\n\n");
        } /* for */ 
    
        for(i=1;i<=4;i++)
        {
            printf("%d : (%d,%d)\n", i, coords[i].x, coords[i].y);
        } /* for */      
    
       koordcheck();
       quadrat();
    
       scanf("%f");                  
    
    } /* main */
    

    gruß sebi



  • strcmp() vergleicht zwei Strings, also muss man ihr zwei char* übergeben. Du übergibst aber integer. Das macht auch keinen Sinn. Wenn du coords[k].x und tocheck auf Gleichheit überprüfen willst, dann mach das doch bitte mit ==. Andernfalls sag was du eigentlich machen wolltest.

    Außerdem werden Arrays in C beginnend mit der 0 angesprochen, nicht mit der 1 so wie du es machst.



  • omg ^^ ich war so auf das strcmp() versteift dass ich total den den "normalen" weg vergessen hab ... vielen dank für die schnelle antwort! 👍 👍 👍



  • achsoja... das ziel soll sein, sagen zu können, um welche figur es sich bei den 4 vom benutzer eingebenen koordinaten (x,y) handelt... sprich ob sie ein quadrat, eine raute, ein rechteck... aufspannen....


Anmelden zum Antworten