Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

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("\nGiven array of names: \t");
   for (int i = 0; i < n; i++) printf("%s \t", arr[i]);
      qsort(arr, n, sizeof(const char*), comparator);
   printf("\nSorted 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