I tried to implement strcmp
:
int strCmp(char string1[], char string2[])
{
int i = 0, flag = 0;
while (flag == 0) {
if (string1[i] > string2[i]) {
flag = 1;
} else
if (string1[i] < string2[i]) {
flag = -1;
} else {
i++;
}
}
return flag;
}
but I'm stuck with the case that the user will input the same strings, because the function works with 1
and -1
, but it's doesn't return 0
. Can anyone help? And please without pointers!
Uhm.. way too complicated. Go for this one:
int strCmp(const char* s1, const char* s2)
{
while(*s1 && (*s1 == *s2))
{
s1++;
s2++;
}
return *(const unsigned char*)s1 - *(const unsigned char*)s2;
}
It returns <0, 0 or >0 as expected
You can't do it without pointers. In C, indexing an array is using pointers.
Maybe you want to avoid using the *
operator? :-)