21xrx.com
2024-05-20 13:01:40 Monday
登录
文章检索 我的文章 写文章
C++实现字符串排序
2023-07-14 21:06:45 深夜i     --     --
C++ 字符串 排序 实现

C++中的字符串是字符数组,可以使用排序算法对字符串进行排序。在实现字符串排序时,需要了解几个概念:

1. 字符串长度:可以使用strlen函数获取字符串长度。

2. 字符串比较:可以使用strcmp函数比较两个字符串的大小关系。

3. 字符串交换:可以使用strcpy函数交换两个字符串。

基于上面的概念,我们可以使用冒泡排序算法或快速排序算法对字符串进行排序。下面以冒泡排序为例,介绍C++实现字符串排序的步骤。

步骤一:定义一个字符串数组,存储需要排序的字符串。


char str[10][50] = "banana";

步骤二:使用冒泡排序算法对字符串进行排序。


for (int i = 0; i < 9; i++) { // 外层循环控制每次排序的次数

  for (int j = 0; j < 9 - i; j++) { // 内层循环控制比较次数

    if (strcmp(str[j], str[j + 1]) > 0) { // 如果前一个字符串比后一个字符串大,则交换位置

      char temp[50]; // 定义一个临时变量,用于交换字符串

      strcpy(temp, str[j]);

      strcpy(str[j], str[j + 1]);

      strcpy(str[j + 1], temp);

    }

  }

}

步骤三:输出排序后的字符串。


for (int i = 0; i < 10; i++) {

  cout << str[i] << endl;

}

完整代码如下:


#include <iostream>

#include <cstring>

using namespace std;

int main() {

  char str[10][50] = "grape";

  for (int i = 0; i < 9; i++) {

    for (int j = 0; j < 9 - i; j++) {

      if (strcmp(str[j], str[j + 1]) > 0) {

        char temp[50];

        strcpy(temp, str[j]);

        strcpy(str[j], str[j + 1]);

        strcpy(str[j + 1], temp);

      }

    }

  }

  for (int i = 0; i < 10; i++) {

    cout << str[i] << endl;

  }

  return 0;

}

运行结果如下:


apple

banana

cat

dog

elephant

fox

grape

house

ink

jet

使用上述步骤,我们实现了C++中的字符串排序。实际应用中,还可以使用快速排序等更高效的算法对字符串进行排序。

  
  

评论区

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