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

📅  最后修改于: 2023-12-03 14:48:49.479000             🧑  作者: Mango

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

在C语言中,有一个常见的任务就是比较两个字符串是否相等。尽管C语言标准库中提供了strcmp()函数来完成这个任务,但有些时候我们可能需要使用自己写的比较函数。这篇文章将会介绍如何不使用strcmp()函数来比较两个字符串。

算法思路

比较两个字符串是否相等的基本算法思路是逐个字符比较它们的ASCII码值。我们可以使用一个循环来实现这个过程。如果逐个字符比较的过程中有字符不相同,则这两个字符串不相等;否则它们相等。

代码实现

这是一个简单的不使用strcmp()函数比较两个字符串的C程序:

#include <stdio.h>

int str_equal(char *str1, char *str2);

int main()
{
    char str1[50], str2[50];

    printf("Enter string 1: ");
    scanf("%s", str1);

    printf("Enter string 2: ");
    scanf("%s", str2);

    if (str_equal(str1, str2))
    {
        printf("Strings are equal\n");
    }
    else
    {
        printf("Strings are not equal\n");
    }

    return 0;
}

int str_equal(char *str1, char *str2)
{
    int i = 0;

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

    return 1;
}

str_equal()函数比较两个字符串是否相等。它的参数是两个字符指针,分别指向待比较的两个字符串。str_equal()函数中使用了一个while循环来逐个比较字符串中的字符。如果比较到某个字符不相同,则返回0表示这两个字符串不相等;否则返回1表示它们相等。在主函数中,我们调用了str_equal()函数并输出比较结果。

总结

虽然C语言提供了strcmp()函数来比较两个字符串,但是有时候我们需要自己编写比较函数。本文介绍了一个简单的算法来比较两个字符串是否相等,以及如何在C程序中实现这个算法。