c - 尝试编写一个 C 程序来按字母顺序对二维数组中的 25 个单词进行冒泡排序

标签 c arrays sorting bubble-sort

我弄清楚了如何读取字符串,但我不确定如何使用冒泡排序按字母顺序排列它们。这就是我所要走的路。我不断收到错误“段错误(核心已转储)”。

#include <stdio.h>  
#include <string.h> 

#define NUM 25   /* number of strings */
#define LEN 1000  /* max length of each string */

     main()
        {
          char Strings[NUM][LEN];
          int i, j;
          char tempValue;

          printf("Please enter %d strings, one per line:\n", NUM);

          for(i=0; i<NUM-1; i++)
          {    
           fgets(Strings[i], LEN-2, stdin);
          }

          for(i=0; i<NUM-1; i++)
          {
            for(j=0; j<LEN-2; j++)
            {
              if(Strings[i][j] < Strings[i+1][j]) 
              {
                tempValue = Strings[i][j];
                Strings[i][j] = Strings[i + 1][j];
                Strings[i + 1][j] = tempValue;


              }
            }
          }

        }

最佳答案

使用strcmp

if(strcmp(Strings[i], Strings[i+1]) > 0) 
{
    //swap elements
}

它基本上会比较字符串中的字符,首先比较不匹配的字符对,如果传递给函数的第一个字符串具有更大的值,它将返回 1。

关于c - 尝试编写一个 C 程序来按字母顺序对二维数组中的 25 个单词进行冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28506880/

相关文章:

c - Jaccard距离在C中的实现

c - 如何获取 C 中多个条目的第一个字符?

java - 将数组分成 3 个 block 并将它们放入数组的数组中?

C#矩形数组排序

c - 如何查看静态库文件的编译平台

c - 初始化 C 动态数组

c - 如何从文件中读取数字字符串并将它们放入数组中?

php - 将 MySQL INNER JOIN 的结果合并到一个 PHP 数组中

algorithm - 插入排序中比较和交换的区别

java - 哪种方法可以更好地获取排序数据