Người dùng phải nhập số lượng tên và những tên đó bắt buộc phải được sắp xếp theo thứ tự bảng chữ cái với sự trợ giúp của hàm strcpy ().
Một mảng ký tự (hoặc) tập hợp các ký tự được gọi là một chuỗi.
Tuyên bố
Sau đây là khai báo cho một mảng -
char stringname [size];
Ví dụ, chuỗi ký tự char [50]; chuỗi dài 50 ký tự.
Khởi tạo
- Sử dụng hằng số ký tự duy nhất
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
- Sử dụng hằng số chuỗi
char string[10] = "Hello":;
Đang truy cập
Có một chuỗi điều khiển "% s" được sử dụng để truy cập vào chuỗi cho đến khi nó gặp ‘\ 0’
strcpy ()
Hàm này được sử dụng để sao chép chuỗi nguồn thành chuỗi đích.
Độ dài của chuỗi đích lớn hơn hoặc bằng chuỗi nguồn.
Cú pháp cho hàm strcpy () như sau -
strcpy (Destination string, Source String);
Ví dụ:
char a[50]; char a[50]; strcpy ("Hello",a); strcpy ( a,"hello"); output: error output: a= "Hello"
Logic được sử dụng để sắp xếp các tên theo thứ tự bảng chữ cái như sau -
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); } } }
Chương trình
Sau đây là chương trình C để sắp xếp tên theo thứ tự bảng chữ cái -
#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]); } }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
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