ผู้ใช้ป้อนจำนวนชื่อ และชื่อต่างๆ ต้องการเรียงตามลำดับอักษรด้วย strcpy()
อาร์เรย์ของตัวอักษร (หรือชุดตัวอักษร) เรียกว่า String
การประกาศ
char stringname [size];
เช่น char string[50]; สตริงยาว 50 ตัวอักษร
การกำหนดค่าเริ่มต้น
- ใช้ค่าคงที่ตัวอักษรเดี่ยว
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
- ใช้ค่าคงที่สตริง
char string[10] = "Hello":;
การเข้าถึง
ใช้ control string "%s" เข้าถึงสตริงจนกว่าจะเจอ '\0'
strcpy()
คัดลอกสตริงต้นทางไปสตริงปลายทาง ความยาวปลายทางต้องมากกว่าหรือเท่าต้นทาง
strcpy (Destination string, Source String);
เช่น strcpy(a, "Hello") → 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