Sắp xếp chuỗi theo Alphabet trong C / C++
Trong bài viết này, codehow sẽ hướng dẫn các bạn cách sắp xếp chuỗi theo Alphabet trong C / C++. Khi bắt đầu học bất kì ngôn ngữ lập trình nào, thì đây là dạng bài toán không thể thiếu để chúng ta luyện tập.
Để hiểu được chương trình, các bạn cần có kiến thức cơ bản trong C / C++, đặc biết là vòng lặp nhé.
Như các bạn đã biết thì thứ tự Alphabet được sắp xếp theo các chữ cái từ a - z.
Ví dụ mình có hai chuỗi như sau: freetuts.net và codehow.net. Như vậy sau khi sắp xếp theo Alphabet thì codehow.net rồi mới đến freetuts.net.
Vậy làm thế nào để có thể viết được chương trình sắp xếp chuỗi theo Alphabet trong C / C++, hãy cùng mình bắt đầu thôi nhé.
Chương trình sắp xếp chuỗi theo Alphabet trong C / C++
Để sắp xếp chuỗi theo Alphabet trong C / C++, chúng ta sẽ sử dụng thêm hai hàm đó là strcmp()
và strcpy()
.
Ở các bài viết tiếp theo mình sẽ nói rõ hơn về hai hàm này, bây giờ các bạn chỉ cần biết:
- Hàm strcmp(): dùng để so sánh hai chuỗi theo thứ tự Alphabet.
- Trả về giá trị dương nếu ký tự khác biệt đầu tiên của chuỗi một lớn hơn chuỗi hai.
- Trả về giá trị âm nếu ký tự khác biệt đầu tiên của chuỗi một bé hơn chuỗi hai.
- Trả về 0 nếu hai chuỗi bằng nhau.
- Hàm strcpy(): dùng để sao chép nội dùng của chuỗi này gán sang chuỗi khác.
Gợi ý giải chương trinh sắp xếp chuỗi theo Alphabet trong C / C++.
Bước 1: Khai báo biến i và j sử dụng cho vòng lặp, biến count để lưu số chuỗi mà người dùng muốn nhập.
//khai báo biến i và j để sử dụng cho vòng lặp //khai báo biến count để lưu số chuỗi người dùng muốn nhập int i,j,count;
Bước 2: Khai báo hai chuỗi str và temp, chuỗi str lưu nội dung của chuỗi cần sắp xếp. Chuỗi temp là chuỗi tạm được dùng để hoán đổi nội dung giữa các chuỗi.
//khai báo hai chuỗi là chuỗi str do người dùng nhập //chuỗi temp là chuỗi tạm char str[25][25],temp[25];
Bước 3: Yêu cầu người dùng nhập vào số lượng chuỗi muốn sắp xếp.
//yêu cầu người dùng nhập vào số chuỗi puts("Bạn muốn nhập bao nhiêu chuỗi: "); scanf("%d", &count);
Bước 4: Yêu cầu người dùng nhập vào các chuỗi cần sắp xếp.
//yêu cầu người dùng nhập vào các chuỗi cần sắp xếp puts("Nhập vào chuỗi đầu tiên: "); for(i=0;i<count;i++) scanf("%s", &str[i]);
Bước 5: Sử dụng hàm strcmp()
và strcpy()
để sắp xếp các chuỗi sau đó hiển thị ra màn hình chuỗi đã sắp xếp.
//sử dụng hàm strcmp để so sánh các chuỗi //sau đó sử dụng hàm strcpy() để hoán đổi vị trí các chuỗi for(i=0;i<count;i++) for(j=i+1;j<count;j++){ if(strcmp(str[i],str[j])>0){ strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } } //hiển thị chuỗi ra màn hình sau khi sắp xếp printf("Các chuỗi sau khi sắp xếp là:\n"); for(i=0;i<=count;i++) puts(str[i]);
Dưới đây là hai chương trình mình đã viết sẵn bằng hai ngôn ngữ C và C++, các bạn có thể tham khảo nhé!!!
Chương trình C:
//khai báo thư viện stdio.h #include <stdio.h> int main(void) { //khai báo biến i và j để sử dụng cho vòng lặp //khai báo biến count để lưu số chuỗi người dùng muốn nhập int i,j,count; //khai báo hai chuỗi là chuỗi str do người dùng nhập //chuỗi temp là chuỗi tạm char str[25][25],temp[25]; //yêu cầu người dùng nhập vào số chuỗi puts("Bạn muốn nhập bao nhiêu chuỗi: "); scanf("%d", &count); //yêu cầu người dùng nhập vào các chuỗi cần sắp xếp puts("Nhập vào chuỗi đầu tiên: "); for(i=0;i<count;i++) scanf("%s", &str[i]); //sử dụng hàm strcmp để so sánh các chuỗi //sau đó sử dụng hàm strcpy() để hoán đổi vị trí các chuỗi for(i=0;i<count;i++) for(j=i+1;j<count;j++){ if(strcmp(str[i],str[j])>0){ strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } } //hiển thị chuỗi ra màn hình sau khi sắp xếp printf("Các chuỗi sau khi sắp xếp là:\n"); for(i=0;i<=count;i++) puts(str[i]); printf("\n------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); }
Kết quả:
Chương trình C++:
#include <iostream> #include<string.h> using namespace std; int main(){ //khai báo biến i và j để sử dụng cho vòng lặp //khai báo biến count để lưu số chuỗi người dùng muốn nhập int i,j,count; //khai báo hai chuỗi là chuỗi str do người dùng nhập //chuỗi temp là chuỗi tạm char str[25][25],temp[25]; //yêu cầu người dùng nhập vào số chuỗi puts("bạn muốn nhập bao nhiêu chuỗi: "); cin>>count; //yêu cầu người dùng nhập vào các chuỗi cần sắp xếp puts("Nhập vào chuỗi đầu tiên: "); for(i=0;i<count;i++) cin>>(str[i]); //sử dụng hàm strcmp để so sánh các chuỗi //sau đó sử dụng hàm strcpy() để hoán đổi vị trí các chuỗi for(i=0;i<count;i++) for(j=i+1;j<count;j++){ if(strcmp(str[i],str[j])>0){ strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } } //hiển thị chuỗi ra màn hình sau khi sắp xếp cout<<"Các chuỗi sau khi sắp xếp là:\n"; for(i=0;i<=count;i++) puts(str[i]); cout<<"\n------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; }
Kết quả:
Như vậy là chúng ta đã cùng nhau tìm hiểu về cách sắp xếp theo chuỗi theo Alphabet trong C / C++. Các bạn có thể luyện tập nhiều dạng bài tập khác nhau tại serries bài tập C / C++ của codehow nhé. Cảm ơn các bạn rất nhiều !!!