C语言比较两个字符串内容是否一样,可以通过使用标准库函数 strcmp()、逐字符比较法、使用指针比较法。其中,strcmp() 是最常用且方便的方法。下面将详细讨论这些方法中的一种——strcmp()。
strcmp() 是 C 标准库中的一个函数,用于比较两个字符串的内容。该函数来自于字符串处理库 <string.h>
。使用 strcmp() 函数时,它会逐字符比较两个字符串,并返回一个整数值。具体来说,如果两个字符串相等,则返回 0;如果第一个字符串小于第二个字符串,则返回一个负整数;如果第一个字符串大于第二个字符串,则返回一个正整数。这样,利用返回值即可判断字符串是否相等。
一、strcmp() 函数的用法
1. 什么是 strcmp() 函数
strcmp() 函数是用于比较两个字符串的标准库函数,其定义如下:
int strcmp(const char *str1, const char *str2);
str1
和str2
是待比较的两个字符串。- 返回值:如果
str1
等于str2
,则返回 0;如果str1
小于str2
,则返回一个负整数;如果str1
大于str2
,则返回一个正整数。
2. 使用 strcmp() 函数的示例
以下是一个使用 strcmp() 函数比较两个字符串是否相等的示例:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello, World!";
char str2[] = "Hello, World!";
char str3[] = "Hello, C!";
if (strcmp(str1, str2) == 0) {
printf("str1 and str2 are equal.n");
} else {
printf("str1 and str2 are not equal.n");
}
if (strcmp(str1, str3) == 0) {
printf("str1 and str3 are equal.n");
} else {
printf("str1 and str3 are not equal.n");
}
return 0;
}
在上面的示例中,strcmp(str1, str2)
返回 0,因此 str1
和 str2
被认为是相等的。而 strcmp(str1, str3)
返回一个非零值,表示 str1
和 str3
不相等。
二、逐字符比较法
1. 什么是逐字符比较法
逐字符比较法是通过循环逐个字符进行比较,直到遇到不同的字符或字符串的结束符 '