Sắp xếp chuỗi trong C++ | Laptrinhcanban.com

Sắp xếp chuỗi trong C++

Hướng dẫn sắp xếp chuỗi trong C++. Bạn sẽ học được cách sắp xếp các ký tự của chuỗi trong C++ cũng như cách sắp xếp các chuỗi theo thứ tự chữ cái trong C++ sau bài viết này.

Trong C++ không tồn tại hàm nào giúp chúng ta trực tiếp tiến hành sắp xếp chuỗi cả. Tuy nhiên bằng cách sử dụng kết hợp các hàm với nhau, chúng ta có thể thực hiện được việc này.

Sắp xếp các ký tự của chuỗi trong C++

Bằng cách sử dụng vòng lặp for để lấy ra từng ký tự và so sánh chúng với nhau, chúng ta có thể tiến hành sắp xếp các ký tự của chuỗi trong C++ theo thứ tự trong bảng chữ cái.

Để so sánh các ký tự với nhau, chúng ta sử dụng tới các toán tử so sánh lớn nhỏ trong C++.

Và chúng ta sẽ sử dụng vòng lặp for để tiến hành sắp xếp ký tự trong chuỗi như sau:

#include <iostream>
#include <cstring>
using namespace std;

int main (void) {
char str[256] ;

/* Nhập các chuỗi vào chương trình */
cout << "Nhap chuoi: ";
cin >> str;

/* Tìm độ dài chuỗi*/
int length = strlen(str);

/* Tạo vòng lặp để tiến hành sắp xếp ký tự trong chuỗi*/
int i, j;
char temp;

for (i = 0; i < length-1; i++) {
for (j = i+1; j < length; j++) {

/* So sánh lần lượt các ký tự và hoán đổi giá trị nhờ biến temp*/
if (str[i] > str[j]) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}

cout << "Ket qua: "<< str;
return 0;
}

Khi chạy chương trình, kết quả hiện ra như sau:

Nhap chuoi: akjhu
Ket qua: ahjku

Sắp xếp các chuỗi theo thứ tự chữ cái trong C++

Cũng bằng cách sử dụng vòng lặp for, chúng ta có thể tiến hành nhập nhiều chuỗi từ bàn phím vào chương trình và sắp xếp các chuỗi này theo theo thứ tự chữ cái bằng chương trình sau đây.

Lưu ý ở đây chúng ta so sánh các chuỗi với nhau bằng hàm strcmp(), sau đó lưu kết quả so sánh vào mảng kết quả bằng hàm strcpy() và in kết quả ra màn hình.

#include<iostream>
#include<cstring>
using namespace std;

int main()
{

int i, j, num;

/* Lệnh nhập số chuỗi cần nhập */
cout << "So chuoi can nhap: ";

cin >> num;

/* Khai báo chuỗi sử dụng để sắp xếp */
char str[num][20], tmp[20];

/* Nhập các chuỗi vào chương trình */
cout << "\nHay nhap "<<num<<" chuoi vao chuong trinh\n";
for (i=0;i<num;i++) {
cout << "Chuoi thu "<<i+1<<"= ";
cin >> str[i];
}
/* Sắp xếp */
for(i=1;i<num;i++){
for(j=1;j<num;j++){
if(strcmp(str[j-1], str[j])>0){
strcpy(tmp, str[j-1]);
strcpy(str[j-1], str[j]);
strcpy(str[j], tmp);
}
}
}
/* In kết quả sắp xếp*/
cout << endl;
for (i=0;i<num;i++)
cout <<str[i]<<endl;

return 0;
}

Khi chạy chương trình, kết quả hiện ra như sau:

So chuoi can nhap: 3

Hay nhap 3 chuoi vao chuong trinh
Chuoi thu 1= xyz
Chuoi thu 2= abcd
Chuoi thu 3= mnk

abcd
mnk
xyz

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách sắp xếp chuỗi trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.