21xrx.com
2024-09-19 09:52:22 Thursday
登录
文章检索 我的文章 写文章
如何在C++中比较两个string?
2023-07-04 04:54:10 深夜i     --     --
C++ string 比较 函数 操作符

在C++中,比较两个字符串可以使用字符串函数和运算符。其中,字符串函数包括strcmp()、strncmp()、strcasecmp()和strncasecmp(),运算符包括==、!=、<、<=、>和>=。

strcmp()函数可以比较两个字符串的大小,其返回值为0表示两个字符串相等,小于0表示字符串1小于字符串2,大于0表示字符串1大于字符串2。例如:


#include <iostream>

#include <cstring>

using namespace std;

int main() {

  string str1 = "hello";

  string str2 = "world";

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

  if (result == 0)

    cout << "str1 and str2 are equal";

   else if (result < 0)

    cout << "str1 is less than str2";

   else

    cout << "str1 is greater than str2";

  

  return 0;

}

结果为:str1 is less than str2。

注意,在使用strcmp()函数时,需要将两个字符串转换为C风格字符串,即使用.c_str()函数。

另外,如果要比较两个字符串前n个字符的大小,则可以使用strncmp()函数。其参数除了两个字符串之外,还需传入要比较的字符数n。例如:


#include <iostream>

#include <cstring>

using namespace std;

int main() {

  string str1 = "hello";

  string str2 = "help";

  int result = strncmp(str1.c_str(), str2.c_str(), 3);

  if (result == 0)

    cout << "str1 and str2 are equal";

   else if (result < 0)

    cout << "str1 is less than str2";

   else

    cout << "str1 is greater than str2";

  

  return 0;

}

结果为:str1 is greater than str2。

除了使用字符串函数,也可以使用运算符进行比较。使用==表示两个字符串相等,!=表示两个字符串不相等,<表示第一个字符串小于第二个字符串,>表示第一个字符串大于第二个字符串,<=表示第一个字符串小于等于第二个字符串,>=表示第一个字符串大于等于第二个字符串。例如:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string str1 = "hello";

  string str2 = "world";

  if (str1 == str2)

    cout << "str1 and str2 are equal";

   else if (str1 < str2)

    cout << "str1 is less than str2";

   else

    cout << "str1 is greater than str2";

  

  return 0;

}

结果为:str1 is less than str2。

需要注意的是,使用运算符比较字符串时,其比较规则是按照字典序进行的。如果两个字符串的长度不同,长的字符串大于短的字符串。

总之,在C++中比较两个字符串,可以使用字符串函数和运算符,但需要注意函数参数的传递和运算符的比较规则。

  
  

评论区

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