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

โปรแกรม C ++ เพื่อย้อนกลับประโยคโดยใช้ Recursion


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