C 语言标准函数库中包括 strcmp 函数,用于字符串的比较。作为练习,我们自己编写一个功能与之相同的函数。
时间: 2024-03-22 13:42:04 浏览: 70
C 语言 strcmp 函数
好的,为了编写一个与 strcmp 相同功能的函数,我们需要了解 strcmp 的实现原理。strcmp 函数的作用是比较两个字符串的大小,其返回值为整型值,表示两个字符串的大小关系。
下面是一个简单的实现:
```c
int my_strcmp(const char *s1, const char *s2) {
while (*s1 && (*s1 == *s2)) {
s1++;
s2++;
}
return *(const unsigned char*)s1 - *(const unsigned char*)s2;
}
```
该函数通过循环比较两个字符串的每个字符,直到遇到不同的字符或者结束符 '\0' 为止。如果两个字符串相等,返回值为 0;如果第一个字符串小于第二个字符串,返回值为负数;如果第一个字符串大于第二个字符串,返回值为正数。
我们可以使用该函数进行字符串的比较,例如:
```c
#include <stdio.h>
int my_strcmp(const char *s1, const char *s2);
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = my_strcmp(str1, str2);
if (result == 0) {
printf("str1 equals to str2\n");
} else if (result < 0) {
printf("str1 is less than str2\n");
} else {
printf("str1 is greater than str2\n");
}
return 0;
}
int my_strcmp(const char *s1, const char *s2) {
while (*s1 && (*s1 == *s2)) {
s1++;
s2++;
}
return *(const unsigned char*)s1 - *(const unsigned char*)s2;
}
```
输出结果为:
```
str1 is less than str2
```
因为字符串 "hello" 小于字符串 "world"。
阅读全文