c语言手写strcmp
时间: 2025-01-03 10:43:25 浏览: 4
### C语言实现 `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 *string1 = "hello";
const char *string2 = "world";
int result = my_strcmp(string1, string2);
if (result < 0) {
printf("'%s' is less than '%s'\n", string1, string2);
} else if (result > 0) {
printf("'%s' is greater than '%s'\n", string1, string2);
} else {
printf("Both strings are equal.\n");
}
return 0;
}
```
此代码定义了一个名为 `my_strcmp` 的自定义函数[^1],它接受两个指向常量字符的指针作为参数,并逐个字符对比直到遇到不同的字符或到达字符串结尾为止。当发现差异时,通过减法运算得出最终的结果值。注意这里使用了 `(unsigned char)` 类型转换以确保处理非ASCII字符集的情况也能得到正确结果[^2]。
阅读全文