C++ 比较字符串的不同方法

17 Mar 2025 | 6 分钟阅读

本节将讨论在C++编程语言中比较给定字符串的不同方法。字符串的比较决定了第一个字符串是否与另一个字符串相等。示例:HELLO和Hello是两个不同的字符串。

Different Ways to Compare Strings in C++

在C++编程语言中,有不同的字符串比较方法,如下所示:

  1. 使用strcmp()函数
  2. 使用compare()函数
  3. 使用关系运算符
  4. 使用for循环和if语句
  5. 使用用户自定义函数

strcmp()函数

strcmp()是string.h头文件的预定义库函数。strcmp()函数按字典顺序比较两个字符串。这意味着strcmp()函数逐字符地将第一个字符串与第二个字符串进行比较,直到两个字符串中的所有字符都相同或遇到NULL字符为止。

语法

参数

leftstr: 它定义左字符串的字符。

rightstr: 它定义右字符串的字符。

返回值

leftstr字符串从左侧开始与第二个字符串逐字符比较,直到两个字符串的末尾。如果两个字符串相等,strcmp()函数返回“字符串相等”。否则,字符串不相等。

让我们创建一个程序,在C++中使用strcmp()函数比较字符串。

Program1.cpp

输出

 String 1:  Welcome to JavaTpoint
 String 2:  Welcome to JavaTpoint

 Both strings are equal.

 String 3:  JavaTpoint
 String 4:  Javatpoint

 The strings are not equal.

compare()函数

compare()函数是C++语言的预定义库函数。compare()函数比较两个给定字符串,并根据匹配情况返回以下结果:

  1. 如果两个字符串相同,函数返回0。
  2. 如果第一个字符串的字符值小于第二个字符串,函数返回 < 0。
  3. 如果第二个字符串大于第一个字符串,函数返回大于0或 >0。

语法

让我们创建一个简单的程序,在C++中使用compare()函数比较两个字符串。

Program2.cpp

输出

1st Run:
Enter the string 1: Program
 Enter the string 2: program
Program is smaller than program string


2nd Run:
Enter the string 1: APPLE
 Enter the string 2: APPLE
 Both strings are equal.

关系运算符

它是C++中用于比较两个字符串或数值的操作符。C++有不同类型的关系运算符,例如“==”、“!=”、“>”、“<”运算符。但在这里,我们只使用两个运算符,即“==”等于和“!=”不等于关系运算符来轻松比较字符串。

语法

在C++中使用等于(==)运算符比较两个字符串

等于(==)运算符:它用于检查第一个字符串与第二个字符串的相等性。

让我们创建一个程序,在C++中使用双等于(==)运算符比较字符串。

Program3.cpp

输出

Enter the String 1:
JavaTpoint
 Enter the String 2:
javatpoint
 String is not equal.

第二次执行

Enter the String 1:
Program
 Enter the String 2:
Program
 String is equal.

使用不等于(!=)关系运算符比较两个字符串

让我们创建一个程序,在C++中使用不等于(!=)运算符比较字符串是否相等。

Program4.cpp

输出

Enter the String 1:
JAVATpoint
 Enter the String 2:
JavaTPOINT
 String is not equal.

第二次运行

Enter the String 1:
HELLO
 Enter the String 2:
HELLO
 String is equal.

在C++中使用for循环和if语句比较两个字符串

Program5.cpp

输出

Enter the String 1:
WELCOME
 Enter the String 2:
WELCOME
 String 1 is equal to String 2

在C++中使用用户自定义函数比较两个字符串

让我们创建一个简单的程序,在C++中使用用户自定义函数比较第一个字符串与另一个字符串。

Program6.cpp

输出

JavaT is not equal to Tpoint string.
Tpoint is greater than JavaT string.
JavaTpoint is equal to JavaTpoint string.

下一个主题在C++中反转数组