C 程序对一组名字或字符串进行排序


在这个问题中,我们给定一个字符串数组。我们的任务是创建一个 c 程序来对一组名字或字符串进行排序。此程序将根据升序字母顺序对输入中给出的所有名字进行排序。

我们举个例子来理解一下这个问题,

输入

namesArray = ["Rishabh", "Jyoti", "Palak", "Akash"]

输出

["Akash", "jyoti", "palak", "Rishabh"]

为了解决这个问题,我们将使用标准模板库的 qsort() 函数,因为我们知道整数值的排序,这里改变的是,我们考虑字符串进行比较,而不是整数值。

因此,将更改在 qsort() 中使用的比较器,并且 strcmp() 将用于比较比较器中的字符串。通过这种方式,我们可以对一组名字或字符串进行排序。

C 程序对一组名字或字符串进行排序

示例

直播演示

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int comparator(const void* str1, const void* str2) {
   if(strcmp(*(const char**)str1, *(const char**)str2) >= 0)
      return 1;
   else return 0;
}
int main() {
   const char* arr[] = {"Rishabh", "Jyoti", "Palak", "Akash"};
   int n = sizeof(arr) / sizeof(arr[0]);
   printf("
Given array of names: \t");    for (int i = 0; i < n; i++) printf("%s \t", arr[i]);       qsort(arr, n, sizeof(const char*), comparator);    printf("
Sorted array of names: \t");    for (int i = 0; i < n; i++)       printf("%s \t", arr[i]);    return 0; }

输出

Given array of names:  Rishabh Jyoti Palak Akash
Sorted array of names: Akash   Jyoti Palak Rishabh

更新于: 2020-07-18

2K+ 浏览

开启您的 事业

完成课程即可获得认证

开始
广告
© . All rights reserved.