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[] = { "neveropen" , "neveropenquiz" , "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; } |
Given array is 0: neveropen 1: neveropenquiz 2: clanguage Sorted array is 0: clanguage 1: neveropen 2: neveropenquiz
Time Complexity: O(nlogn)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!