Betrachten Sie den folgenden Code ein:
zwei Strings Vergleich
char str1[] = "Hello";
char str2[] = "Hello\0\0\0l\0o";
int x;
x=memcmp(str1,str2,sizeof(str2));
printf("%d",x);
Wenn ich es laufen, es zeigt die o/p als:
1
Können Sie erklären, den Grund für Dies. Ich habe gelernt, dass jedes Byte in beiden Strings verglichen wird und entsprechend zurückkehrt. Aber mir ist nicht klar, was am Ende passiert.
Sind Sie sicher, dass 'str1 []' und 'str2 []' keine Größe haben? –
Hast du darüber nachgedacht, über Memcmp in deinem C-Buch für Anfänger zu lesen? Abgesehen von dem Fehler in Ihrem Code, kann die Antwort auf Ihre Frage dort gefunden werden. – Lundin