Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C เรียงชื่อตามลำดับตัวอักษร


ผู้ใช้ต้องป้อนจำนวนชื่อ และชื่อเหล่านั้นจะต้องจัดเรียงตามลำดับตัวอักษรโดยใช้ฟังก์ชัน strcpy()

อาร์เรย์ของอักขระ (หรือ) คอลเลกชันของอักขระเรียกว่าสตริง

ประกาศ

ต่อไปนี้เป็นการประกาศสำหรับอาร์เรย์ -

char stringname [size];

ตัวอย่างเช่น สตริงอักขระ[50]; สตริงที่มีความยาว 50 ตัวอักษร

การเริ่มต้น

  • การใช้ค่าคงที่อักขระตัวเดียว
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • การใช้ค่าคงที่สตริง
char string[10] = "Hello":;

การเข้าถึง

มีสตริงควบคุม "%s" ที่ใช้สำหรับเข้าถึงสตริงจนกว่าจะพบ '\0'

strcpy ( )

ฟังก์ชันนี้ใช้สำหรับคัดลอกสตริงต้นทางไปยังสตริงปลายทาง

ความยาวของสตริงปลายทางมากกว่าหรือเท่ากับสตริงต้นทาง

ไวยากรณ์สำหรับฟังก์ชัน strcpy() มีดังนี้ -

strcpy (Destination string, Source String);

ตัวอย่างเช่น

char a[50];             char a[50];
strcpy ("Hello",a);      strcpy ( a,"hello");
output: error           output: a= "Hello"

ตรรกะที่ใช้ในการเรียงลำดับชื่อตามลำดับตัวอักษรมีดังนี้ -

for(i=0;i<n;i++){
   for(j=i+1;j<n;j++){
      if(strcmp(str[i],str[j])>0){
         strcpy(s,str[i]);
         strcpy(str[i],str[j]);
         strcpy(str[j],s);
      }
   }
}

โปรแกรม

ต่อไปนี้เป็นโปรแกรม C เพื่อจัดเรียงชื่อตามลำดับตัวอักษร -

#include<stdio.h>
#include<string.h>
main(){
   int i,j,n;
   char str[100][100],s[100];
   printf("Enter number of names :\n");
   scanf("%d",&n);
   printf("Enter names in any order:\n");
   for(i=0;i<n;i++){
      scanf("%s",str[i]);
   }
   for(i=0;i<n;i++){
      for(j=i+1;j<n;j++){
         if(strcmp(str[i],str[j])>0){
            strcpy(s,str[i]);
            strcpy(str[i],str[j]);
            strcpy(str[j],s);
         }
      }
   }
   printf("\nThe sorted order of names are:\n");
   for(i=0;i<n;i++){
      printf("%s\n",str[i]);
   }
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

Enter number of names:
5
Enter names in any order:
Pinky
Lucky
Ram
Appu
Bob
The sorted order of names is:
Appu
Bob
Lucky
Pinky
Ram