Hallo, ich habe ein Problem und zwar habe ich ein Mehrfach array 'strings [25][80]' in das ich z.b. zehn namen mit max 80 zeichen reinschreibe und möchte es dann an eine funktion übergeben und die namen dann alphabetisch sortieren aber ich kriege die übergabe nicht hin weil ich die ganze zeit eine fehlermeldung diese fehlermeldung kriege. Hier ist mein Quellcode: #include "stdafx.h" #include <string.h> void String_einlesen(); void sortieren(char *ptr); int a=12; char strings[25][80]; int count=0; int main (void) { String_einlesen(); sortieren(strings[0]); while (1) { } return 0; } void String_einlesen() { int ch=0; while(ch=(getchar()) != 'Y') { fflush(stdin); scanf("%s",strings[count]); fflush(stdin); count++; } } void sortieren(char *ptr) { if(strcmp(ptr[1],ptr[0])>0) printf("yes"); else printf("no"); } und das ist die Fehlermeldung: error C2664: 'strcmp': Konvertierung des Parameters 1 von 'char' in 'const char *' nicht möglich
Nun, der an "sortieren" übergebene Parameter ist vom Typ char*. Den dereferenzierst Du beim Aufruf von strcmp, übergibst also zwei einzelne chars. strcmp aber erwartet zwei char-Pointer, nicht zwei chars. Abhilfe: Korrigiere den an "sortieren" übergebenen Parameter zu char**, und rufe "sortieren" mit einem korrekten Parameter auf. Derzeit übergibst Du einen Pointer auf char, Du willst aber Pointer auf Pointer auf char (char**) übergeben. Literaturhinweis: Brian Kernighan & Dennis Ritchie "Programmieren in C", zweite Auflage, Hanser-Verlag.
ptr[0] ist dasselbe wie *ptr und damit ein char strcmp erwartet aber einen Zeiger auf ein char
>Derzeit übergibst Du einen Pointer auf char, Du willst aber Pointer auf >Pointer
auf char (char**) übergeben.
da will er aber nicht, er wille einen pointer auf ein Array übergeben,
also char array[][80]
auf die Zeilen kann er dann mit array[i] zugreifen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.