c语言实现字符串的分组逆序,例如输入abcde,分组长度为2,输出ecdab
时间: 2024-10-29 19:20:02 浏览: 18
在C语言中,我们可以使用循环和数组来实现字符串的分组逆序。假设输入字符串 `str` 和分组长度 `group_len` 已知,我们可以按照以下步骤操作:
1. 计算分组数以及每个分组的开始位置。
2. 分别对每个分组进行逆序。
3. 将所有逆序后的分组连接成最终结果。
以下是一个简单的C语言实现:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str, int start, int end) {
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
void group_reverse(char *str, int group_len) {
int len = strlen(str);
int group_count = len / group_len;
if (len % group_len != 0) { // 考虑最后一个不够满的分组
group_count++;
}
for (int i = 0; i < group_count; i++) {
int start = i * group_len;
int end = (i + 1) * group_len - 1;
if (end >= len) break; // 避免超出范围
reverse(str + start, start, end);
}
}
int main() {
char str[] = "abcde";
int group_len = 2;
group_reverse(str, group_len);
printf("Reversed grouped string: %s\n", str);
return 0;
}
```
当你运行这个程序,它会输出 "ecdab"。
阅读全文