输入一个字符串(以“.”作为结束),设计一个算法,要求打印出它们的倒序字符串。用递归的方法c语言
时间: 2024-11-04 19:15:17 浏览: 13
在 C 语言中,你可以使用递归来实现一个函数,该函数接收一个字符串并返回其倒序。下面是一个简单的递归算法示例:
```c
#include <stdio.h>
#include <string.h>
// 递归函数,输入字符串 str,返回倒序后的字符串
char* reverseString(char *str) {
// 如果字符串为空或只有一个字符,直接返回
if (*str == '\0' || str[1] == '\0') {
return str;
}
// 将最后一个字符移到首位,并递归处理剩余部分
char temp = str[strlen(str) - 1];
str[strlen(str) - 1] = '\0'; // 防止越界
str[strlen(str)] = temp;
// 继续递归处理剩下的字符
str[strlen(str) - 1] = reverseString(str + 1);
return str;
}
int main() {
char input[100]; // 假设用户最多输入99个字符
printf("请输入一个字符串(以 . 结束):");
fgets(input, sizeof(input), stdin); // 获取用户输入,包括换行符
// 删除末尾的换行符
input[strcspn(input, "\n")] = '\0';
// 使用递归函数反转字符串
char reversed[100]; // 新建一个缓冲区存储结果
strcpy(reversed, reverseString(input));
printf("倒序字符串为:%s\n", reversed);
return 0;
}
```
在这个程序中,`reverseString` 函数通过每次将字符串的最后一个字符移动到第一位,然后递归地处理剩余部分,实现了字符串的倒序。注意,在 `main` 中,我们还需要额外处理用户输入的换行符。
阅读全文