📜  不使用strcmp()函数比较两个字符串的C程序(1)

📅  最后修改于: 2023-12-03 15:21:30.618000             🧑  作者: Mango

不使用strcmp()函数比较两个字符串的C程序

在C语言中,我们经常需要对字符串进行比较操作。常用的比较函数是strcmp()。但是,有些情况下,我们可能需要自己实现比较函数。这篇文章将介绍如何不使用strcmp()函数比较两个字符串。

原理

我们知道,字符串实际上是个字符数组,以'\0'结尾。比较两个字符串的实际上是在比较它们对应的字符。因此,我们可以使用循环来遍历两个字符串,逐个比较它们的字符。如果有不同的字符,则返回它们之间的差值。

程序实现
#include <stdio.h>

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

int main() {
    char str1[] = "hello";
    char str2[] = "world";
    int result = str_compare(str1, str2);
    if(result > 0)
        printf("str1 is greater than str2.\n");
    else if(result < 0)
        printf("str2 is greater than str1.\n");
    else
        printf("str1 is equal to str2.\n");
    return 0;
}

这个程序首先定义了一个自己实现的字符串比较函数str_compare(),它接受两个字符串指针作为参数。函数内部使用while循环遍历两个字符串,逐个比较它们的字符。当遇到不同的字符时,函数返回它们的差值。如果两个字符串完全相等,则返回0。在主函数中,我们定义了两个字符串"hello"和"world",然后调用str_compare()函数来比较它们的大小关系。根据比较结果,我们输出相应的字符串。

结论

这篇文章介绍了如何不使用strcmp()函数比较两个字符串。实际上,字符串比较的原理是很简单的,只需要遍历两个字符串,逐个比较它们的字符即可。因此,我们可以自己实现一个字符串比较函数,这在某些情况下会非常有用。