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