void foo(char *s) {
int i = 0;
while (s[i] != '\0') {
if (s[i] == ' ') {
s[i] = '\0';
foo(s + i + 1);
printf("%s ", s);
break;
}
i++;
}
// 缺少:字串無空格時(最後一詞)直接輸出
}
void foo(char *s) {
int i = 0;
while (s[i] != '\0') {
if (s[i] == ' ') {
s[i] = '\0';
foo(s + i + 1);
printf("%s ", s);
return; // 找到空格處理完返回
}
i++;
}
// 基礎情況:無空格(最後一詞或單詞)
printf("%s ", s);
}
int main() {
char s[] = "welcome to learn c";
foo(s);
return 0;
}
c learn to welcome (逆序)。先遞歸再輸出(後序遍歷),或用陣列收集再逆序列印。