输入一个字符串(以“.”作为结束),设计一个算法,要求打印出它们的倒序字符串。运用c语言和递归算法解决
时间: 2024-10-25 16:13:05 浏览: 30
在C语言中,我们可以使用递归算法来实现字符串的倒序打印。这里有一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义一个递归函数,接收一个字符串指针和剩余字符计数
void printReverse(char* str, int index) {
// 递归终止条件:当索引小于0时,停止递归
if (index < 0)
return;
// 打印当前字符
printf("%c", str[index]);
// 递归调用自身,将索引减一,继续处理下一个字符
printReverse(str, index - 1);
}
int main() {
char input[100]; // 假设输入字符串最多100个字符
printf("请输入一个字符串(以\".\")结束:");
fgets(input, sizeof(input), stdin); // 从标准输入获取字符串
// 截断fgets读取到的换行符
size_t len = strlen(input);
if (input[len - 1] == '\n')
input[len - 1] = '\0'; // 如果有换行符,替换为'\0'
// 调用printReverse函数并传入字符串和长度(-1表示已排除最后一个'\0')
printReverse(input, strlen(input) - 1);
printf("\n"); // 换行,使得输出更清晰
return 0;
}
```
当你运行这个程序并输入一个以"."结尾的字符串后,它会打印出该字符串的倒序。
阅读全文