21xrx.com
2024-09-20 05:40:30 Friday
登录
文章检索 我的文章 写文章
C++实现字符串按首字母排序
2023-07-12 10:36:50 深夜i     --     --
C++ 字符串 首字母排序

C++是一种流行的编程语言,可用于各种应用程序的开发,包括字符串排序。在本文中,我们将讨论如何使用C++编写一个程序来按首字母对字符串进行排序。

首先,我们需要准备一个字符串数组,用于存储待排序的字符串。它可以通过以下代码进行初始化:


#include <iostream>

#include <algorithm>

#include <string.h>

using namespace std;

int main()

{

  string strArr[] = "Zebra";

  int n = sizeof(strArr) / sizeof(strArr[0]);

  sort(strArr, strArr + n);

  for(int i = 0; i < n; i++)

    cout << strArr[i] << " ";

  return 0;

}

在这个例子中,我们使用C++标准库的sort函数来对字符串数组进行排序。sort函数需要两个参数:第一个是待排序的数组的起始地址,第二个是排序后的数组的结束地址。通过这个例子,我们能够发现sort函数可以自动按字典序排序。

但是,如果我们想要根据字符串的首字母进行排序,该怎么办呢?其实也十分简单!我们只需要使用C++标准库的字符串操作函数substr函数来截取每个字符串的首字母,然后排序即可。具体的代码实现如下:


#include <iostream>

#include <algorithm>

#include <string.h>

using namespace std;

bool cmp(string a, string b)

{

  return a.substr(0, 1) < b.substr(0, 1);

}

int main()

{

  string strArr[] = "Zebra";

  int n = sizeof(strArr) / sizeof(strArr[0]);

  sort(strArr, strArr + n, cmp);

  for(int i = 0; i < n; i++)

    cout << strArr[i] << " ";

  return 0;

}

在该例子中,我们通过定义一个自定义函数cmp来对字符串数组进行排序。该函数使用substr函数来获取每个字符串的首字母,然后根据其大小来排序。可以看出该实现方法比第一个示例稍微复杂一些,但也十分简单易懂。

最后,我们需要注意,在C++中字符串的排序是默认按照字典序排序的,如果想要按照其他方式排序,最好使用自定义函数来实现排序。

  
  

评论区

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