尝试编写一个C程序,按字母顺序从二维数组中冒出25个单词

时间:2015-02-13 19:05:39

标签: c arrays sorting bubble-sort

我想出了如何阅读字符串,但我不确定如何使用冒泡排序按字母顺序排列。这就是我所要做的。我一直收到错误“Segmentation fault(core dumped)。

#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;


              }
            }
          }

        }

1 个答案:

答案 0 :(得分:0)

使用strcmp

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

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