请编写代码,实现字符串的逆置操作。Char_Reverse是一个递归函数,该函数接受一个字符数组,通过递归方式实现字符串的逆置,并将逆置后的字符串存储在原数组中。 注意:逆置的字符串以字符’#'作为结束标志。字符数组的长度不超过预定义的最大长度。C语言
时间: 2024-10-24 22:02:18 浏览: 25
线性链表逆置_设有一线性表_线性链表逆置_
以下是一个简单的C语言代码示例,实现了`Char_Reverse`递归函数,用于逆置输入的字符数组直到遇到`'#'`为止:
```c
#include <stdio.h>
#define MAX_LENGTH 100
// 函数声明
void Char_Reverse(char arr[], int start, int end);
int main() {
char str[MAX_LENGTH + 1]; // 字符串数组,包含结束标志'#'
printf("请输入一个以 '#' 结束的字符串(不超过 %d 个字符): ", MAX_LENGTH);
fgets(str, MAX_LENGTH, stdin); // 输入字符串,包括换行符
// 移除fgets添加的换行符
if (str[strlen(str) - 1] == '\n') {
str[strlen(str) - 1] = '\0';
}
int length = strlen(str); // 获取实际字符串长度
if (length > 0 && str[length - 1] != '#') {
str[length - 1] = '#'; // 添加结束标志
Char_Reverse(str, 0, length - 1); // 调用逆序函数
}
printf("逆置后的字符串: %s\n", str);
return 0;
}
// 递归函数实现字符串逆置
void Char_Reverse(char arr[], int start, int end) {
if (start >= end) { // 递归基本情况:开始位置大于等于结束位置
return;
} else {
char temp = arr[start]; // 交换开始和结束位置的元素
arr[start] = arr[end];
arr[end] = temp;
// 继续递归处理剩余部分
Char_Reverse(arr, start + 1, end - 1);
}
}
```
在这个例子中,用户会被提示输入一个以`'#'`结尾的字符串,然后`Char_Reverse`函数会将其逆置并打印结果。
阅读全文