重写strcmp函数
时间: 2024-08-25 11:00:58 浏览: 42
`strcmp` 函数是C语言标准库中的一个用于比较两个字符串的函数。该函数定义在 `<string.h>` 头文件中,其原型如下:
```c
int strcmp(const char *str1, const char *str2);
```
当两个字符串相等时,`strcmp` 函数返回0。如果第一个字符串大于第二个字符串,返回正值;如果小于第二个字符串,返回负值。比较时按照ASCII值进行比较,逐字符比较直到找到不匹配的字符或遇到字符串结束符`\0`。
如果你想要重写 `strcmp` 函数,你需要自定义一个函数,其行为与标准库中的 `strcmp` 相同。下面是一个简单的 `strcmp` 函数的实现:
```c
#include <stdio.h>
int my_strcmp(const char *str1, const char *str2) {
while (*str1 && (*str1 == *str2)) {
str1++;
str2++;
}
return *(const unsigned char *)str1 - *(const unsigned char *)str2;
}
int main() {
const char *str1 = "Hello";
const char *str2 = "World";
int result = my_strcmp(str1, str2);
if (result == 0) {
printf("两个字符串相等。\n");
} else if (result < 0) {
printf("第一个字符串小于第二个字符串。\n");
} else {
printf("第一个字符串大于第二个字符串。\n");
}
return 0;
}
```
在这个重写的版本中,我们使用了一个循环来逐个比较字符串中的字符,直到遇到两个不同的字符或遇到字符串结束符。然后,返回两个字符的ASCII差值作为结果。
阅读全文