Рубрики

C Программа для сортировки массива имен или строк

Учитывая массив строк, в которых все символы имеют одинаковый регистр, напишите функцию C, чтобы отсортировать их по алфавиту.

Идея состоит в том, чтобы использовать qsort () в C и написать функцию сравнения, которая использует strcmp () для сравнения двух строк.

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

  
// Определение функции компаратора согласно требованию

static int myCompare(const void* a, const void* b)

{

  

    // настройка правил для сравнения

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

}

  
// Функция для сортировки массива

void sort(const char* arr[], int n)

{

    // вызов функции qsort для сортировки массива

    // с помощью компаратора

    qsort(arr, n, sizeof(const char*), myCompare);

}

  

int main()

{

  

    // Получить массив имен для сортировки

    const char* arr[]

        = { "geeksforgeeks", "geeksquiz", "clanguage" };

  

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

    int i;

  

    // Выводим имена

    printf("Given array is\n");

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

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

  

    // Сортировка по названию

    sort(arr, n);

  

    // Распечатать отсортированные имена

    printf("\nSorted array is\n");

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

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

  

    return 0;

}

Выход:

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

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

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

C Программа для сортировки массива имен или строк

0.00 (0%) 0 votes