Open In App

C Program to Sort an array of names or strings

Last Updated : 23 Jun, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given an array of strings in which all characters are of the same case, write a C function to sort them alphabetically.  The idea is to use qsort() in C and write a comparison function that uses strcmp() to compare two strings. 

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

// Defining comparator function as per the requirement 
static int myCompare(const void* a, const void* b) 
{ 

    // setting up rules for comparison 
    return strcmp(*(const char**)a, *(const char**)b); 
} 

// Function to sort the array 
void sort(const char* arr[], int n) 
{ 
    // calling qsort function to sort the array 
    // with the help of Comparator 
    qsort(arr, n, sizeof(const char*), myCompare); 
} 

int main() 
{ 

    // Get the array of names to be sorted 
    const char* arr[] 
        = { "geeksforgeeks", "geeksquiz", "clanguage" }; 

    int n = sizeof(arr) / sizeof(arr[0]); 
    int i; 

    // Print the given names 
    printf("Given array is\n"); 
    for (i = 0; i < n; i++) 
        printf("%d: %s \n", i, arr[i]); 

    // Sort the given names 
    sort(arr, n); 

    // Print the sorted names 
    printf("\nSorted array is\n"); 
    for (i = 0; i < n; i++) 
        printf("%d: %s \n", i, arr[i]); 

    return 0; 
} 

Output
Given array is
0: geeksforgeeks 
1: geeksquiz 
2: clanguage 

Sorted array is
0: clanguage 
1: geeksforgeeks 
2: geeksquiz 

Time Complexity: O(nlogn)
Auxiliary Space: O(1)


Next Article
Article Tags :
Practice Tags :

Similar Reads