21xrx.com
2024-12-22 21:59:28 Sunday
登录
文章检索 我的文章 写文章
C++中如何比较字符串大小?
2023-06-30 19:12:25 深夜i     --     --
C++ 字符串大小 比较 字符串比较函数 字符串排序方法

C++中比较字符串大小是一个常见的问题,因为字符串是经常用到的数据类型。在C++中,我们可以使用比较运算符(>、<、>=、<=、==、!=)来比较两个字符串的大小。但是,现实情况是,直接用比较运算符来比较两个字符串的大小是不够准确的。如果我们想要更加准确地比较两个字符串的大小,就需要借助于C++标准库提供的字符串比较函数。

在C++标准库中,有三个字符串比较函数,分别是strcmp()、strncmp()和strcoll()函数。这三个函数的具体用法如下:

1. strcmp()函数:比较两个字符串的ASCII码值,如果两个字符串完全相同,返回0,如果第一个字符串比第二个字符串小,返回负数,如果第一个字符串比第二个字符串大,返回正数。下面是strcmp()函数的示例代码:


#include <iostream>

#include <cstring>

using namespace std;

int main()

{

  char str1[] = "Hello";

  char str2[] = "World";

  if (strcmp(str1, str2) == 0)

    cout << "str1 and str2 are identical" << endl;

  else if (strcmp(str1, str2) > 0)

    cout << "str1 is greater than str2" << endl;

  else

    cout << "str1 is less than str2" << endl;

  return 0;

}

输出结果为:str1 is less than str2。

2. strncmp()函数:与strcmp()函数类似,不过strncmp()函数比较的是前n个字符,而不是全部字符。下面是strncmp()函数的示例代码:


#include <iostream>

#include <cstring>

using namespace std;

int main()

{

  char str1[] = "Hello, world!";

  char str2[] = "Hello, boys!";

  if (strncmp(str1, str2, 5) == 0)

    cout << "The first five characters of str1 and str2 are identical" << endl;

  else if (strncmp(str1, str2, 5) > 0)

    cout << "The first five characters of str1 is greater than str2" << endl;

  else

    cout << "The first five characters of str1 is less than str2" << endl;

  return 0;

}

输出结果为:The first five characters of str1 and str2 are identical。

3. strcoll()函数:比较两个字符串的整个排序顺序,而不只是ASCII码值。这个函数与按照当前语言环境排序有关,因此比较的结果也是按照当前语言环境来排序的。下面是strcoll()函数的示例代码:


#include <iostream>

#include <cstring>

#include <locale.h>

using namespace std;

int main()

{

  setlocale(LC_ALL, ""); //设置当前环境

  char str1[] = "köln";

  char str2[] = "Köln";

  if (strcoll(str1, str2) == 0)

    cout << "str1 and str2 are identical" << endl;

  else if (strcoll(str1, str2) > 0)

    cout << "str1 is greater than str2" << endl;

  else

    cout << "str1 is less than str2" << endl;

  return 0;

}

输出结果为:str1 is less than str2。

综上所述,比较字符串大小的方法有很多种,不同的方法适用于不同的情况。在C++中,我们可以使用比较运算符来快速比较字符串大小,但是如果我们需要更加准确地比较字符串大小,就需要使用C++标准库提供的字符串比较函数。

  
  

评论区

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