c语言模拟系统函数strcmp
时间: 2023-11-26 12:48:17 浏览: 107
c语言strcmp 函数使用
C语言中的strcmp函数用于比较两个字符串是否相等,如果相等则返回0,如果不相等则返回非0值。下面是模拟实现strcmp函数的代码:
```c
#include <stdio.h>
#include <assert.h>
int my_strcmp(const char* str1, const char* str2) {
assert(str1 && str2); // 断言指针不为空
while (*str1 == *str2) { // 比较两个字符串的每个字符
if (*str1 == '\0') { // 如果两个字符串都比较完了
return 0; // 返回0表示相等
}
str1++; // 指针后移
str2++;
}
return(*str1 - *str2); // 返回不相等字符的差值
}
```
上面的代码中,我们首先使用assert函数判断指针是否为空,然后使用while循环比较两个字符串的每个字符,如果两个字符串都比较完了,则返回0表示相等,否则返回不相等字符的差值。
下面是一个使用my_strcmp函数的例子:
```c
#include <stdio.h>
int main() {
char* p = "abcq";
char* q = "abbb";
int ret = my_strcmp(p, q);
if (ret > 0) {
printf(">\n"); // p指向的字符串大于q指向的字符串
} else if (0 == ret) {
printf("=\n");
} else {
printf("<\n");
}
return 0;
}
```
运行结果为:
```
>
```
阅读全文