VIẾT CHƯƠNG TRÌNH ĐẢO NGƯỢC CÁC KÝ TỰ TRONG CHUỖI

Để luyện tập kỹ năng về chuỗi trong C, từ bây giờ Lập trình không khó khăn sẽ cùng các bạn đi làm bài bác tập hòn đảo ngược chuỗi nhập từ keyboard trong ngôn ngữ C/C++. Chúng ta sẽ cùng nhau tiến hành đảo ngược chuỗi không áp dụng hàm và hòn đảo ngược chuỗi thực hiện hàm tất cả sẵn trong các thư viện của ngôn từ C/C++.

Bạn đang xem: Viết chương trình đảo ngược các ký tự trong chuỗi

Input


Đảo ngược chuỗi không dùng hàm gồm sẵn

Nếu không biết cách nhập chuỗi các chúng ta có thể xem lại giải pháp nhập chuỗi tại đây.

Đầu tiên chúng ta phải đếm xem chuỗi bao gồm bao nhiêu kí tự. Với trách nhiệm này thì mình đã viết riêng một hàm Length() trả về số lượng kí tự vào chuỗi. Lưu ý khi chúng ta nhập chuỗi vào sử dụng hàm fgets() thì nó đang đọc cả kí từ " " (hay kí từ bỏ enter) vào thời gian cuối chuỗi. Trọng trách của chúng ta là không đếm kí trường đoản cú này.

Sau khi bao gồm được số lượng kí tự trong chuỗi, việc tiếp theo sau sẽ là hòn đảo ngược chuỗi. Các các bạn sẽ dùng một bé trỏ đẳng cấp char để gìn giữ chuỗi đảo ngược.

Cuối thuộc hàm DaoNguoc sẽ trả về bé trỏ mà chúng ta dùng nhằm lưu kí tự.

Xem thêm: Hệ Quản Trị Cơ Sở Dữ Liệu Là Gì? Các Hệ Quản Trị Cơ Sở Dữ Liệu Phổ Biến

Nếu bạn chỉ cần xuất ra thì hoàn toàn có thể dùng 1 vòng for theo hướng ngược lại như hàm InDaoNguoc.

Lời giải tham khảo:


0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include
int Length(char s<>)

int i = 0;
while (s != NULL)
++i;
return i - 1;

char *DaoNguoc(char str<>)

int length = Length(str);
char *temp = new char;
for (int i = 0; i length; i++)

temp = str;

temp = NULL; //Kết thúc chuỗi
return temp;

void InDaoNguoc(char str<>)
int length = Length(str);
printf(" Chuoi sau khoản thời gian dao nguoc la: ");
for (int i = length - 1; i >= 0; i--)

printf("%c", str);


int main()

char s<100>;
printf(" Nhap chuoi: ");
fgets(s, 100, stdin); // đề xuất dùng hàm fgets
/*gets(s);*/
char *kq = DaoNguoc(s);
InDaoNguoc(s);
printf(" Chuoi sau khi dao nguoc la: %s", kq);
return 0;

0
1
2
3
4
5
6
7
8
PS G:c_courcesday_58> g++ .Reverse.cpp -o .Reverse
PS G:c_courcesday_58> .Reverse.exe
Nhap chuoi: Nguyen Van Hieu
Chuoi sau thời điểm dao nguoc la: ueiH naV neyugN
Chuoi sau khi dao nguoc la: ueiH naV neyugN

Đảo ngược chuỗi sử dụng hàm có sẵn

Với ngữ điệu lập trình C

Ngôn ngữ C có thư viện string.h, trong số đó có hàm strrev() giúp bạn có thể đảo ngược chuỗi một cách 1-1 giản:


0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include
#include
int main()

char name<30> = "Nguyen Van Hieu";
printf("Truoc lúc dao nguoc : %s ", name);
printf("Sau khi dao nguoc : %s", strrev(name));
return 0;

Kết quả:


0
1
2
3
4
5
PS G:c_courcesday_57> g++ .StringFuntion.cpp -o .StringFuntion
PS G:c_courcesday_57> .StringFuntion.exe
Truoc lúc dao nguoc : Nguyen Van Hieu
Sau lúc dao nguoc : ueiH naV neyugN

Với ngữ điệu C++

Với việc áp dụng thư viện string thì bạn không cần phải đếm số lượng kí trường đoản cú nữa rồi! Rất tiện lợi phải không.

Đầu tiên thì chúng ta khởi sinh sản một temp(kiểu string) trống, tiếp đến ta lần lượt thêm từng kí tự vào thời điểm cuối temp. Ta sẽ thực hiện hàm pusk_back nhằm thêm kí tự vào thời điểm cuối temp. Bây giờ nhiệm vụ của họ là lấy từng kí trường đoản cú của s theo chiều từ sau cho tới và thêm vào temp.

Cuối thuộc hàm DaoNguoc sẽ trả về temp, chính là chuỗi đã hòn đảo ngược.


0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include
#include
using namespace std;
string DaoNguoc(string s)
int length = s.length();
string temp;
for (int i = length-1; i >=0; i--)
temp.push_back(s);

return temp;

int main()

string s;
cin.clear();
getline(std::cin, s);
cout "Chuoi sau khi dao nguoc la: ";
cout DaoNguoc(s);
return 0;

0
1
2
3
Hoc lap trinh
Chuoi sau thời điểm dao nguoc la: hnirt pal coH

Hoặc đơn giản hơn tương đối nhiều nếu thực hiện hàm sau đây:


0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include
#include
using namespace std;
int main()

string str = "Lap trinh khong kho";
// Reverse str
reverse(str.begin(), str.end());
cout str;
return 0;

Kết quả:


0
1
2
ohk gnohk hnirt paL

Bài viết mình đến đây cũng xin kết thúc. Cám ơn các bạn đã theo dõi !

Theo dõi lập trình không nặng nề tại:


TAGS
Facebook
Twitter
Pinterest
WhatsApp
*
*

Phép toán thao tác làm việc bit vào C++ (Bitwise operation)


*

Tính lũy quá ma trận vào C/C++


*

Bài tập struct trong C/C++ có lời giải


*

Giới thiệu trang web Luyện Code Online


Giáo trình kỹ thuật lập trình C – Phạm Văn Ất


Tổng vừa lòng tài liệu xây dựng C/C++ cho người mới


Subscribe
Connect with
Notify of
new follow-up comments
Label
Name*
Email*
Website
Connect with
Label
Name*
Email*
Website
7 phản hồi
Inline Feedbacks
View all comments
Load More Comments
Khóa học miễn phí
Tham gia cộng đồng developers trên Clash of Clan: Luyện Code
Ưu đãi bắt đầu nhất

Mã giảm giá & tặng thêm khóa học lập...


Khóa học lập trình Java cơ bản miễn phí


Học xây dựng online với mức giá thành ưu đãi


Lập trình WinForm với C# qua 10 ứng dụng


Học HTML5, CSS3, Bootstrap 4 và giảm Web từ file PSD


Học Python từ bỏ Zero – Hero


Khóa học lập trình game android toàn tập


Học lập trình sẵn C/C++ TỪ A – Z


Blog share kiến thức thiết kế của Hiếu, xây dựng cộng đồng những tín đồ học lập trình. Mang lại đi kỹ năng mình gồm là cách học tập công dụng nhất


Báo lỗi / contact / bắt tay hợp tác / Quảng cáo
Blogger
Discord
Facebook
Linkedin
Youtube

BÀI VIẾT HAY


Bài 1. Reviews khóa học “Học C Bá Đạo”


1000 bài bác tập lập trình C/C++ có lời giải của thầy Khang


Kiểm tra số nguyên tố áp dụng C/C++ và Java


CHUYÊN MỤC HAY


- BẠN BÈ và ĐỐI TÁC -

---

© 2018-2020. Phiên bản quyền trực thuộc Lập Trình ko Khó. Privacy và Terms


7
0
Would love your thoughts, please comment.x
()
x
| Reply
Insert
NHIỀU BÀI VIẾT HƠN

Cách tính sin cos trong c++


Học xây dựng online với mức ngân sách ưu đãi