สตริงคืออาร์เรย์อักขระหนึ่งมิติที่สิ้นสุดโดยอักขระ 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);