Hàm đảo ngược chuỗi trong c++

      529

Để luyện tập kỹ năng và kiến thức về chuỗi vào C, hôm nay Lập trình không khó khăn đang cùng các bạn đi làm việc bài tập đảo ngược chuỗi nhập tự keyboard trong ngôn ngữ C/C++. Chúng ta đang bên nhau thực hiện đảo ngược chuỗi ko áp dụng hàm với hòn đảo ngược chuỗi thực hiện hàm tất cả sẵn trong những tlỗi viện của ngữ điệu C/C++.

Bạn đang xem: Hàm đảo ngược chuỗi trong c++

Input


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

Nếu chưa biết cách nhập chuỗi các chúng ta có thể xem lại bí quyết nhập chuỗi tại phía trên.

Trước tiên các bạn cần đếm coi chuỗi gồm từng nào kí trường đoản cú. Với nhiệm vụ này thì mình đang viết riêng một hàm Length() trả về con số kí từ vào chuỗi. Lưu ý khi các bạn nhập chuỗi vào áp dụng hàm fgets() thì nó vẫn phát âm cả kí trường đoản cú " " (xuất xắc kí tự enter) vào thời điểm cuối chuỗi. Nhiệm vụ của các bạn là ko đếm kí trường đoản cú này.

Sau lúc đã đạt được số lượng kí từ bỏ vào chuỗi, Việc tiếp theo sau đang là đảo ngược chuỗi. Các các bạn sẽ sử dụng một con trỏ dạng hình char để giữ lại chuỗi hòn đảo ngược.

Cuối thuộc hàm DaoNguoc đang trả về bé trỏ cơ mà chúng ta dùng để lưu lại kí tự.

Xem thêm: Vanh Leg Là Ai? Chi Tiết Tiểu Sử, Sự Nghiệp Và Sự Trở Lại Của Vanh Leg

Nếu chúng ta chỉ cần xuất ra thì rất có thể dùng 1 vòng for theo hướng ngược trở lại nlỗi hàm InDaoNguoc.

Lời giải tmê say 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 khi 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); // nên dùng hàm fgets
/*gets(s);*/
char *kq = DaoNguoc(s);
InDaoNguoc(s);
printf(" Chuoi sau thời điểm 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 khoản thời gian 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 gồm sẵn

Với ngôn từ xây dựng C

Ngôn ngữ C gồm thư viện string.h, trong số đó có hàm strrev() giúp bạn có thể hòn đảo ngược chuỗi một bí quyết solo 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 Lúc 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 khi dao nguoc : ueiH naV neyugN

Với ngôn ngữ C++

Với việc thực hiện thư viện string thì bạn không nhất thiết phải đếm con số kí từ nữa rồi! Rất tiện lợi phải ko.

trước hết thì chúng ta khởi tạo thành một temp(dạng hình string) trống, sau đó ta thứu tự thêm từng kí từ vào cuối temp. Ta vẫn thực hiện hàm pusk_back nhằm thêm kí từ vào cuối temp. Bây tiếng trọng trách của chúng ta là lấy từng kí trường đoản cú của s theo chiều từ bỏ sau cho tới và tiếp tế temp.

Cuối cùng hàm DaoNguoc sẽ trả về temp, đó 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 khoản thời gian 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 dễ dàng và đơn giản hơn không ít nếu như 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 trinch 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 mang đến đây cũng xin ngừng. Cám ơn chúng ta sẽ quan sát và theo dõi !

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

Các nội dung bài viết vào khóa họcBài trước: Bài 57. Các hàm vào thỏng viện string.hBài sau: Bài 59. Chuyển giao diện string thanh lịch int
TAGS
Facebook
Twitter
Pinterest
WhatsApp
*
*

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


*

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


*

Tổng hợp tài liệu thiết kế C/C++ cho những người mới


*

Sự khác biệt giữa C với C++ là gì?


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


Bảng băm – Hash tables


Subscribe
Connect with
Notify of
new follow-up comments
Label
Name*
Email*
Website
Connect with
Label
Name*
Email*
Website
7 Bình luận
Inline Feedbacks
View all comments
Load More Comments
Khóa học miễn phí

Lập Trình Không Khó là một trong cộng đồng chia sẻ cùng huấn luyện xây dựng phi lợi tức đầu tư bậc nhất tại cả nước.


Liên hệ hoặc Hợp tác & Quảng cáo
Blogger
Facebook
Linkedin
RSS
Youtube

BÀI VIẾT HAY


Bài 1. Giới thiệu khóa đào tạo và huấn luyện “Học C Bá Đạo”


1000 bài tập thiết kế C/C++ gồm lời giải của thầy Khang


Kiểm tra số nguyên tố sử dụng C/C++ với Java


CHUYÊN MỤC HAY


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


© 2018-2020. Bản quyền trực thuộc Lập Trình Không Khó. Privacy và Terms


7
0
Would love your thoughts, please phản hồi.x
()
x
| Reply
Insert
NHIỀU BÀI VIẾT HƠN

Cách thiết đặt stachồng có áp dụng template


Bài 54. Mảng 2 chiều trong C