C 语言比较两个字符串的程序

2025年3月17日 | 阅读 3 分钟

字符串可以通过字符串函数或不使用字符串函数进行比较。首先,我们将介绍如何借助字符串函数,即定义在 string.h 头文件中的 strcmp() 函数来比较字符串。

使用字符串函数进行字符串比较

定义在 string.h 头文件中的预定义字符串函数是 strcmp() 函数。strcmp() 函数将两个字符串作为参数,并返回一个整数值,该整数值可以是 正数负数

strcmp() 函数的语法如下:

在上述语法中,两个参数作为字符串传入,即 str1str2,返回类型是 int,这意味着 strcmp() 返回一个整数值。

strcmp() 函数比较两个字符串的字符。如果两个字符串的第一个字符相同,则此比较过程将继续,直到所有字符都被比较或指针指向空字符 '\0'。

strcmp() 函数可能的返回值

返回值描述
0当两个字符串相等时,返回 0。
<0如果第一个字符串中字符的 ASCII 值小于第二个字符串中字符的 ASCII 值,则函数将返回负值。
>0如果第一个字符串中字符的 ASCII 值大于第二个字符串中字符的 ASCII 值,则函数将返回正值。

让我们通过一个例子来理解。

上述程序的分析

  • 我们声明了两个字符类型的数组,即 str1 和 str2。我们获取用户输入的字符串。
  • 我们使用 strcmp() 函数,即 strcmp(str1, str2) 来比较字符串。此函数将比较 str1 和 str2 两个字符串。如果函数返回 0 值,则表示两个字符串相同,否则字符串不相等。

输出

C program to compare the two strings
C program to compare the two strings

不使用 strcmp() 函数进行字符串比较

上述程序的分析

  • 在上面,我们声明了两个字符类型的数组,并获取用户输入的字符串。
  • 我们定义了一个 compare() 函数,它将用户输入的字符串作为参数,并比较两个字符串。如果函数返回 0,则表示两个字符串相等,否则两个字符串不相等

输出

C program to compare the two strings

使用指针进行字符串比较

上述程序的分析

  • 我们创建了两个字符类型的数组 str1 和 str2。我们获取用户输入的字符串。
  • 我们定义了一个 stringcompare() 函数,它将两个字符类型的指针作为参数。指针 'a' 保存 str1 的地址,指针 'b' 保存 str2 的地址。在函数内部,我们创建了一个 while 循环,该循环将一直执行,直到指针 a 或 b 达到空字符。

输出

C program to compare the two strings