函數 reverse_print(s):
*s == '\0' 返回 (基礎情況)。reverse_print(s+1) (先處理後續)。*s (回溯時輸出 → 逆序)。#include#include void reverse_print(const char *s) { assert(s); if (*s == '\0') return; reverse_print(s + 1); putchar(*s); } int main() { char str[100]; printf("輸入字串: "); fgets(str, sizeof(str), stdin); // 移除 fgets 讀入的 \n str[strcspn(str, "\n")] = '\0'; reverse_print(str); putchar('\n'); return 0; }
reverse_print("abc")
-> reverse_print("bc")
-> reverse_print("c")
-> reverse_print("") 返回
-> putchar('c')
-> putchar('b')
-> putchar('a')
輸出: cba