LATEST

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.

bai18 03 PNG

Ví dụ mình có hai chuỗi như sau: freetuts.netcodehow.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()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()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ả:

bai18 01 PNG

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ả:

bai18 02 PNG

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 !!!

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top