21xrx.com
2025-03-25 00:18:03 Tuesday
文章检索 我的文章 写文章
C++中如何比较两个字符串的大小
2023-07-07 07:56:54 深夜i     15     0
C++ 比较 字符串 大小 函数

在C++中,要比较两个字符串的大小可以使用strcmp()函数或者string类中的比较函数进行判断。两种方法各有优劣。

一、使用strcmp()函数比较字符串大小

strcmp()函数是C/C++中比较字符串大小的常见函数,其语法如下:

int strcmp(const char* str1, const char* str2);

其中,str1和str2是要比较的两个字符串,函数返回值有三种情况:

- 返回0表示两个字符串相等;

- 返回正数表示str1大于str2;

- 返回负数表示str1小于str2。

下面是一个比较字符串大小的示例代码:

#include <iostream>
#include <cstring>
using namespace std;
int main() {
  char str1[] = "hello";
  char str2[] = "world";
  int result = strcmp(str1, str2);
  if(result == 0)
    cout << "两个字符串相等" << endl;
   else if(result > 0)
    cout << "str1大于str2" << endl;
   else
    cout << "str1小于str2" << endl;
  
  return 0;
}

二、使用string类中的比较函数比较字符串大小

C++中的string类有很多函数可以用来操作字符串,其中比较大小的函数有两个:compare()和operator<。其中,compare()函数的语法如下:

int compare(const string& str) const;

用于比较当前字符串和str的大小,返回值有三种情况:

- 返回0表示两个字符串相等;

- 返回正数表示当前字符串大于str;

- 返回负数表示当前字符串小于str。

而operator<操作符则用于判断两个字符串的大小关系,如果字符串A小于字符串B则返回true,否则返回false,示例代码如下:

#include <iostream>
#include <string>
using namespace std;
int main() {
  string str1 = "hello";
  string str2 = "world";
  int result = str1.compare(str2);
  if(result == 0)
    cout << "两个字符串相等" << endl;
   else if(result > 0)
    cout << "str1大于str2" << endl;
   else
    cout << "str1小于str2" << endl;
  
  if(str1 < str2)
    cout << "str1小于str2" << endl;
   else
    cout << "str1大于等于str2" << endl;
  
  return 0;
}

总体来说,使用strcmp()函数能够快速比较字符串大小,但是如果比较string类类型的字符串大小,推荐使用string类中的比较函数和操作符来比较,因为string类会自动处理字符串长度不同的情况,避免了因长度不同而引发的问题。

  
  

评论区

请求出错了