#include <stdio.h>
#include <assert.h>
#include <string.h>
strcmp(字符串比较)
int my_strcmp (const char *s1, const char *s2)
{
assert(s1 != NULL && s2 != NULL);
while((*s1 == *s2) && *s1) //*s1 != '\0'
{
s1++;
s2++;
}
return *s1 - *s2;
}
strncmp(字符串比较,比较前n个)
int my_strncmp (const char *a, const char *b int n)
{
assert(a && b);
while((*a == *b) && *a) //*a != '\0'
{
a++;
b++;
(n-1)--;
if(n == 0)
{
break; //退出循环(continue//退出当前值,继续循环)
}
}
return *a - *b;
}
int main ()
{
char str1[] = {"adhffkk"};
char str2[] = {"shdjf"};
printf("my strcmp %d\n", my_strcmp(str1, str2)); //-18
printf("my strcmp %d\n", my_strcmp(str2, str1)); //18
printf("my strcmp %d\n", my_strcmp(str1, str1)); //0
return 0;
}
#include <stdio.h>
#include <assert.h>
int my_strcmp(const char *s1, const char *s2)
{
assert(s1 && s2);
while(1) {
char ch1 = *s1++;
char ch2 = *s2++;
if(ch1 != ch2) {
return (ch1 > ch2) ? 1 : -1;
}
else if('\0' == ch1)
break;
}
return 0;
}
int main()
{
char buf[100] = "hello";
printf("%d\n", my_strcmp(buf, "hallolll"));
return 0;
}