สตริงคืออาร์เรย์อักขระหนึ่งมิติที่สิ้นสุดโดยอักขระ null ด้านหลังของสตริงเป็นสตริงเดียวกันในลำดับที่ตรงกันข้าม ตัวอย่างเช่น
Original String: Apple is red Reversed String: der si elppA
โปรแกรมที่กลับประโยคในรูปแบบของสตริงโดยใช้การเรียกซ้ำมีดังต่อไปนี้
ตัวอย่าง
#include <iostream>
using namespace std;
void reverse(char *str) {
if(*str == '\0')
return;
else {
reverse(str+1);
cout<<*str;
}
}
int main() {
char str[] = "C++ is fun";
cout<<"Original String: "<<str<<endl;
cout<<"Reversed String: ";
reverse(str);
return 0;
} ผลลัพธ์
Original String: C++ is fun Reversed String: nuf si ++C
ในโปรแกรมข้างต้น ฟังก์ชัน reverse() เป็นฟังก์ชันแบบเรียกซ้ำที่ย้อนกลับสตริง
เริ่มแรก reverse() ยอมรับ *str ซึ่งเป็นตัวชี้ที่ชี้ไปที่จุดเริ่มต้นของสตริง ถ้าค่าเป็น null ฟังก์ชันจะคืนค่ากลับมา หากไม่เป็นเช่นนั้น ฟังก์ชันจะเรียกตัวเองซ้ำโดยมีค่า str+1 นั่นคือองค์ประกอบถัดไปในสตริง ในที่สุด เมื่อ str เป็นค่าว่าง ค่าของ str จะถูกพิมพ์กลับไปข้างหน้า ดังนั้น สตริงที่กลับด้านจะถูกพิมพ์ ซึ่งแสดงโดยข้อมูลโค้ดต่อไปนี้
if(*str == '\0')
return;
else {
reverse(str+1);
cout<<*str;
} ในฟังก์ชัน main() สตริงจะถูกเตรียมใช้งาน นอกจากนี้ยังแสดงสตริงเดิมและสตริงที่ย้อนกลับ ดังแสดงดังนี้ −
char str[] = "C++ is fun"; cout<<"Original String: "<<str<<endl; cout<<"Reversed String: "; reverse(str);