21xrx.com
2024-12-22 23:56:58 Sunday
登录
文章检索 我的文章 写文章
如何在C++中比较字符串的大小
2023-07-01 18:16:22 深夜i     --     --
C++ 比较 字符串大小

在C++中,有多种方式可以比较字符串的大小,本文将介绍其中的三种方法。

1. 使用strcmp函数

strcmp函数是C++中比较字符串大小的最基本方法之一。该函数的原型如下:

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

其中str1和str2分别表示要比较的两个字符串。该函数比较两个字符串的大小,如果str1小于str2,函数返回一个负数;如果str1等于str2,函数返回0;如果str1大于str2,函数返回一个正数。

下面是一个使用strcmp函数比较字符串大小的例子:


#include <iostream>

#include <cstring>

using namespace std;

int main()

{

  char str1[] = "hello";

  char str2[] = "world";

  int result = strcmp(str1, str2);

  if (result == 0)

  

    cout << "str1 == str2" << endl;

  

  else if (result > 0)

  

    cout << "str1 > str2" << endl;

  

  else

  

    cout << "str1 < str2" << endl;

  

  return 0;

}

2. 使用std::string类型

在C++中,使用std::string类型作为字符串可以更方便地进行比较。在std::string类型中,有一个默认的比较函数operator < ,可以用来比较两个字符串的大小。当第一个字符串小于第二个字符串时,operator < 返回true,否则返回false。

下面是一个使用std::string类型比较字符串大小的例子:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str1 = "hello";

  string str2 = "world";

  if (str1 < str2)

  

    cout << "str1 < str2" << endl;

  

  else if (str1 == str2)

  

    cout << "str1 == str2" << endl;

  

  else

  

    cout << "str1 > str2" << endl;

  

  return 0;

}

3. 使用std::strcmp函数

C++ 11标准引入了一个新的比较函数std::strcmp。与C中的strcmp函数不同,std::strcmp函数接受两个std::string类型的参数,并返回一个整数值表示它们的大小关系。如果第一个字符串小于第二个字符串,则返回负整数值;如果二者相等返回0;如果第一个字符串大于第二个字符串,则返回正整数值。

下面是一个使用std::strcmp函数比较字符串大小的例子:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str1 = "hello";

  string str2 = "world";

  int result = std::strcmp(str1.c_str(), str2.c_str());

  if (result == 0)

  

    cout << "str1 == str2" << endl;

  

  else if (result > 0)

  

    cout << "str1 > str2" << endl;

  

  else

  

    cout << "str1 < str2" << endl;

  

  return 0;

}

总结

在C++中,比较字符串的大小有多种方法,最基本的是使用strcmp函数。C++11标准引入了std::strcmp函数,可以直接对std::string类型的字符串进行比较。而使用std::string类型作为字符串比较,可以更加方便和易读。无论使用哪种方法,我们都需要将比较的字符串转换成同一类型,再进行比较。

  
  

评论区

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