# C 程序：使用递归来反转句子

> 原文： [https://www.programiz.com/c-programming/examples/reverse-sentence-recursion](https://www.programiz.com/c-programming/examples/reverse-sentence-recursion)

#### 在此示例中，您将学习从用户那里获取一个句子并使用递归将其反转。

要理解此示例，您应该了解以下 [C 编程](/c-programming "C tutorial")主题：

*   [C 函数](/c-programming/c-functions)
*   [C 用户定义的函数](/c-programming/c-user-defined-functions)
*   [C 递归](/c-programming/c-recursion)

* * *

## 使用递归反转句子

```c
#include <stdio.h>
void reverseSentence();
int main() {
    printf("Enter a sentence: ");
    reverseSentence();
    return 0;
}

void reverseSentence() {
    char c;
    scanf("%c", &c);
    if (c != '\n') {
        reverseSentence();
        printf("%c", c);
    }
} 
```

**输出**

```c
Enter a sentence: margorp emosewa
awesome program 
```

* * *

该程序首先打印`Enter a sentence:`。 然后，调用`reverseSentence()`函数。

该函数将用户输入的第一个字母存储在`c`中。 如果变量是`\n`（换行符）以外的任何字符，则将再次调用`reverseSentence()`。

这个过程一直进行到用户点击回车为止。

当用户按下`Enter`键时，`reverseSentence()`函数从最后开始打印字符。