#include<stdio.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{
assert(str1&&str2);
while (*str1++ == *str2++)
{
if (*str1 == '\0')
{
return 0;
}
}
return (*str1-*str2);
}
int main()
{
char* p = "I am fine";
char* s = "I am a";
printf("%d",my_strcmp(p,s));
return 0;
}
我们从下面代码可以看出strcmp()函数返回值为一个整数,当两个字符串相等时返回值为0,不相等时前面字符串大于后面字符串,结果为1,否则为-1;
#include<stdio.h>
#include<assert.h>
void main()
{
printf("%d\n",strcmp("abc","abc"));
printf("%d\n",strcmp("abcd","abc"));
printf("%d\n",strcmp("abc","abcd"));
}
并且strcmp函数的参数是常量字符串,所以我们给参数加上const。assert()这个库函数是断言,当str1不为空指针,str2也不为空指针那么就正确执行。否则提醒。(相当于异常)。