c语言设计一个将任意输入的字符串倒置的递归和非递归的算法例如输入序列为abcdefgh输出序列hgfedcba
时间: 2024-10-08 13:19:10 浏览: 55
在C语言中,我们可以使用递归和非递归的方式分别设计一个字符串反转的算法。
**递归算法**:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str, int start, int end) {
if (start >= end)
return;
char temp = str[start];
str[start] = str[end];
str[end] = temp;
reverse(str, start + 1, end - 1);
}
int main() {
char input[100];
printf("请输入一个字符串:");
fgets(input, sizeof(input), stdin); // 防止换行符影响结果
input[strcspn(input, "\n")] = '\0'; // 移除fgets添加的换行符
printf("原字符串:%s\n", input);
reverse(input, 0, strlen(input) - 1);
printf("反转后的字符串:%s\n", input);
return 0;
}
```
**非递归算法(使用指针)**:
```c
#include <stdio.h>
#include <string.h>
void reverse(char* str) {
char* start = str;
char* end = str + strlen(str) - 1;
while (start < end) {
char temp = *start;
*start++ = *end;
*end-- = temp;
}
}
int main() {
char input[100];
printf("请输入一个字符串:");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0';
printf("原字符串:%s\n", input);
reverse(input);
printf("反转后的字符串:%s\n", input);
return 0;
}
```
这两个示例都会接收用户输入的字符串并将其反转输出。
阅读全文
相关推荐


















