ในบทช่วยสอนนี้ เราจะพูดถึงวิธีการกลับสตริง (reverse string) ใน C/C++ หลายวิธี
1. ฟังก์ชัน reverse() ที่ผู้ใช้นิยามเอง
#include <bits/stdc++.h>
using namespace std;
void reverse_str(string& str) {
int n = str.length();
for(int i = 0; i < n / 2; i++)
swap(str[i], str[n - i - 1]);
}
int main() {
string str = "tutorialspoint";
reverse_str(str);
cout << str;
return 0;
}
2. ใช้ฟังก์ชัน reverse() ในตัวของ STL
#include <bits/stdc++.h>
using namespace std;
int main() {
string str = "tutorialspoint";
reverse(str.begin(), str.end());
cout << str;
return 0;
}
3. พิมพ์สตริงย้อนหลัง (ไม่แก้ไขสตริงต้นฉบับ)
#include <bits/stdc++.h>
using namespace std;
void reverse(string str) {
for(int i = str.length() - 1; i >= 0; i--)
cout << str[i];
}
int main(void) {
string s = "tutorialspoint";
reverse(s);
return 0;
}
เอาต์พุต
tniopslairotut
สรุป
- วิธีที่ 1: เขียนอัลกอริทึมสลับตัวอักษรเอง เข้าใจหลักการทำงานได้ชัดเจน
- วิธีที่ 2: ใช้
std::reverseจาก<algorithm>สะดวก เร็ว และเป็นมาตรฐาน - วิธีที่ 3: แค่พิมพ์ย้อนหลัง ไม่เปลี่ยนค่าสตริงต้นฉบับ