C语言自定义个函数实现系统库函数 strcmp的功能, 并写好测试程序
时间: 2024-12-23 08:13:27 浏览: 17
在C语言中,`strcmp()` 是一个标准库函数,用于比较两个字符串是否相等。如果我们想自定义一个函数来实现类似功能,我们可以创建一个名为 `my_strcmp` 的函数,接受两个字符串指针作为输入,并返回一个整数结果。如果第一个字符串小于第二个,返回负数;如果相等,返回0;如果第一个大于第二个,返回正数。
这是一个简单的自定义 `my_strcmp` 函数的实现:
```c
#include <stdio.h>
#include <string.h>
// 自定义strcmp函数
int my_strcmp(const char* str1, const char* str2) {
while (*str1 && *str2 && *str1 == *str2) { // 直到找到不相等字符或者结束符
str1++;
str2++;
}
if (*str1 == '\0') { // 如果str1先到达结束,str1更短
return -1;
} else if (*str2 == '\0') { // 如果str2先到达结束,str2更短
return 1;
} else { // 否则根据最后一个字符的大小判断
return (*str1 - *str2); // 返回字典序的差值
}
}
int main() {
const char* str1 = "hello";
const char* str2 = "world";
int result = my_strcmp(str1, str2);
if (result < 0) {
printf("str1 is less than str2\n");
} else if (result > 0) {
printf("str1 is greater than str2\n");
} else {
printf("str1 and str2 are equal\n");
}
return 0;
}
```
阅读全文