Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ ย้อนกลับสตริง (Reverse String) ด้วย Recursion


Reverse ของสตริงคือสตริงเดิมแต่เรียงกลับหลังมาหน้า ตัวอย่าง: "Apple is red" → "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() แบบ Recursive รับ pointer *str ชี้จุดเริ่มต้นสตริง:

if(*str == '\0')
    return;
else {
    reverse(str+1);
    cout << *str;
}
  • ถ้า *str เป็น \0 (จบสตริง) return กลับ
  • มิฉะนั้น เรียก reverse(str+1) ไปตัวถัดไป
  • เมื่อ unwind (กลับจาก recursion) จะพิมพ์ *str จากท้ายมาหน้า → ได้สตริงกลับ

main() กำหนดสตริง แสดงต้นฉบับ เรียก reverse() แสดงผลกลับ:

char str[] = "C++ is fun";
cout<<"Original String: "<<str<<endl;
cout<<"Reversed String: ";
reverse(str);