ผู้ใช้ต้องป้อนจำนวนชื่อ และชื่อเหล่านั้นจะต้องจัดเรียงตามลำดับตัวอักษรโดยใช้ฟังก์ชัน 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