21xrx.com
2024-12-27 21:55:58 Friday
登录
文章检索 我的文章 写文章
C语言字符串排序问题解析与解决方法
2023-06-16 13:47:12 深夜i     --     --
C语言 字符串 排序 库函数 快速排序 冒泡排序

C语言中操作字符串是很常见的事情,但是对于字符串的排序问题却是很容易被忽略的。本文将介绍C语言字符串排序问题的几种解决方法。

方法一:使用库函数

C语言中提供了很多库函数,例如strcmp、qsort等,其中qsort函数可以实现字符串的快速排序。具体实现方式可以参考下面代码示例:


#include

#include

int cmp(const void *, const void *);

int main()

{

  char s[10][50], temp[50];

  int i, j, n;

  printf("输入字符串数:");

  scanf("%d", &n);

  printf("输入字符串:\n");

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

  {

    scanf("%s", s[i]);

  }

  qsort(s, n, sizeof(s[0]), cmp);

  printf("\n排序后的顺序:\n");

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

  {

    printf("%s\n", s[i]);

  }

  return 0;

}

int cmp(const void *a, const void *b)

{

  return(strcmp((char *)a, (char *)b));

}

方法二:冒泡排序

冒泡排序是一种基础排序方法,其实现方式相对简单。具体实现方式可以参考下面代码示例:


#include

#include

int main()

{

  int i, j;

  char s[10][50], temp[50];

  printf("输入字符串数:");

  scanf("%d", &n);

  printf("输入字符串:\n");

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

  {

    scanf("%s", s[i]);

  }

  for (i = 0; i < n - 1; i++)

  {

    for (j = 0; j < n - i - 1; j++)

    {

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

      {

        strcpy(temp, s[j]);

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

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

      }

    }

  }

  printf("\n排序后的顺序:\n");

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

  {

    printf("%s\n", s[i]);

  }

  return 0;

}

  
  

评论区

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