C 语言实现 strcmp() 库函数137


strcmp() 函数在 C 标准库中是用于比较两个字符串的函数。它返回一个整数,指示两个字符串之间的比较结果。

本教程将指导您逐步实现 C 语言中 strcmp() 函数:
声明函数原型

首先,声明函数原型以指定函数的名称、返回值类型和参数。

#include <stdio.h>
int strcmp(const char *str1, const char *str2);

初始化变量

声明两个字符指针 str1 和 str2,指向要比较的字符串。

int strcmp(const char *str1, const char *str2)
{
int i = 0;
while (str1[i] != '\0' || str2[i] != '\0') {
...
}
}

比较字符串

使用一个循环来逐个字符比较两个字符串。循环将持续到两个字符串中的字符均为 '\0'(空字符)为止。

int i = 0;
while (str1[i] != '\0' || str2[i] != '\0') {
if (str1[i] != str2[i]) {
return str1[i] - str2[i];
}
i++;
}

确定结果

如果循环结束时两个字符串的字符均为 '\0',则表示字符串相等。否则,返回第一个不匹配字符的 ASCII 码差值。

if (str1[i] != '\0' || str2[i] != '\0') {
return str1[i] - str2[i];
} else {
return 0;
}


示例用法:
#include <stdio.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
int result = strcmp(str1, str2);
if (result == 0) {
printf("Strings are equal.");
} else if (result > 0) {
printf("String 1 is greater than String 2.");
} else {
printf("String 2 is greater than String 1.");
}
return 0;
}

输出:String 1 is greater than String 2.

通过按照这些步骤实现 strcmp() 函数,您可以轻松地比较 C 语言中的两个字符串。

2024-12-19


上一篇:C 语言中定位输出和格式化字符串

下一篇:C 语言中的函数