函数名: strcmp
头文件: <string.h>
函数原型: int strcmp(const char *str1,const char *str2);
功 能: 比较两个字符串的大小,区分大小写
参 数: str1和str2为要比较的字符串
返回值: str1 > str2 , 返回 1;
str1 < str2 , 返回 -1;
str1 == str2 , 返回 0;
函数表达:
第一种返回方式
#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;//相等
}
str1++;
str2++;
}
if (*str1 > *str2)
return 1;//大于
else
return -1;//小于
}
int main()
{
char* p1 = "abcdef";
char* p2 = "abcdef";
int ret = my_strcmp(p1,p2);
printf("ret = %d\n",ret);
return 0;
}
第二种返回方式
#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;//相等
}
str1++;
str2++;
}
return (*str1 - *str2);
}
int main()
{
char* p1 = "abcdef";
char* p2 = "bcdef";
int ret = my_strcmp(p1,p2);
printf("ret = %d\n",ret);
return 0;
}
其中用了assert()函数
函数名: assert
头文件:<assert.h>
函数原型: void assert( int expression );
功能: 断言一个表达式是否正确
参数:expression如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行
返回值:没有返回值