Ich möchte wissen, warum strcasecmp() 0 das erste Mal zurückgibt, das ich es benutze, aber nicht das zweite.strcasecmp gibt keine Null zurück
In diesem Beispiel gebe ich speziell "Hallo Welt" in die Standardeingabe ein. Anstatt 0 0 zu drucken, druckt es 0 10. Ich habe den folgenden Code.
#include "stdio.h"
#include "string.h"
int main(void) {
char input[1000];
char *a;
fgets(input, 1000, stdin);
a = strtok(input, " ");
printf("%d\n",strcasecmp(a,"hello")); //returns 0
a = strtok(NULL, " ");
printf("%d\n",strcasecmp(a,"world")); //returns 10
return 0;
}
Was mache ich falsch?
Vielleicht 'a' eine neue Zeile Charakter haben wird. Der Debugger kann dies bestätigen –
@EdHeal Ich fühle mich jetzt dumm. Vielen Dank! –
Denken Sie daran, dass es in Standard C keine Funktion namens 'strcasecmp()' gibt. Ihre Kennzeichnung muss dies angeben (z. B. Linux). – Peter