implement strcmp in C
Better version
#include <stdio.h>
int z_strcmp (char* str1, char* str2){
printf("str1: %s, str2: %s\n", str1, str2);
while( *str1!= '\0' && *str1 - *str2 == 0){
str1++;
str2++;
}
return *str1 - *str2 != 0 ? -1: 0;
}
Worse version
#include <stdio.h>
int _strcmp (char* str1, char* str2){
char* ptr1 = str1;
char* ptr2 = str2;
printf("str1: %s, str2: %s\n", str1, str2);
while( *ptr1!= '\0' && *ptr2 != '\0'){
if(*ptr1 != *ptr2){
return -1;
}
ptr1++;
ptr2++;
}
if(*ptr1 - *ptr2 == 0){
return 0;
}
return -1;
}
Test code
int main() {
printf("result: %d\n", z_strcmp("","accccc"));
return 0;
}
Last updated