21xrx.com
2024-11-08 21:19:26 Friday
登录
文章检索 我的文章 写文章
C++中如何比较两个字符串的大小
2023-07-07 07:56:54 深夜i     --     --
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类会自动处理字符串长度不同的情况,避免了因长度不同而引发的问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复