目录
前言:
strcmp用于比较两个字符串的大小。例如:
char arr = {"123450"};
char str = {"123456"};
此时,arr>str, 该函数将元素逐个进行比较。
int strcmp ( const char * str1, const char * str2 );
这个函数有两个参数,参数类型都为char*,因为比较不用改变变量,所以,两个参数都加了const。函数返回类型为int。为什么呢?当str1 = str2时,返回0;当str1 < str2时,返回小于0的整数;当str1 > str2时,返回大于0的整数。
字符串大小的比较,其本质是对字符所对应的二进制码进行比较。
模拟思路:
1 创建两个字符串,传参
char arr[10] = { "apple" };
char str[10] = { "appge" };
int ret = my_strcmp(arr, str);
2 逐个对比字符
3 返回
pa > ps返回大于0的数;pa < ps返回小于0的数。
代码实现:
int my_strcmp(const char* pa, const char* ps)
{
assert(pa && ps);
while (*pa == *ps)
{
if (*pa == '\0')
{
return 0;
}
pa++;
ps++;
}
return *pa-*ps;
}
int main()
{
char arr[10] = { "apple" };
char str[10] = { "appge" };
int ret = my_strcmp(arr, str);
if (ret > 0)
{
printf("arr>str\n");
}
else if (ret < 0)
{
printf("arr<str\n");
}
else
{
printf("arr=str\n");
}
return 0;
}