从键盘输入字符(最多为80个),遇到回车键输入结束,将输入的字符串按奇偶位置拆分,奇数位上的字符在前,偶数位上的字符在后,重新组成新的字符串输出。C语言
时间: 2024-12-16 15:14:58 浏览: 9
在C语言中,你可以通过以下步骤实现这个功能:
```c
#include <stdio.h>
#include <string.h>
// 函数声明,用于处理字符串奇偶位置的交换
void split_string(char* input);
int main() {
char input[90]; // 为了容纳最多80个字符及回车符
int i = 0;
printf("请输入字符,直到按下回车键: ");
while ((input[i] = getchar()) != '\n') { // 输入字符,直到遇到回车
if (i == 80) break; // 防止溢出,当达到最大长度时停止输入
i++;
}
input[i] = '\0'; // 结束字符串
// 调用函数处理并输出结果
split_string(input);
return 0;
}
// 分割函数,交换奇偶位置
void split_string(char* str) {
int len = strlen(str);
char temp[len / 2 + 1]; // 创建临时数组存放奇数位置字符
for (int i = 0, j = 0; i < len && j < len / 2; ++i, ++j) {
if (i % 2 == 0) { // 偶数位置
temp[j] = str[i];
} else { // 奇数位置
temp[j] = str[i - 1];
}
}
temp[j] = '\0'; // 结束字符串
// 将处理后的奇数位和偶数位连接起来
strcat(str, temp); // 奇数位在前
strcat(str + strlen(temp), temp); // 偶数位在后
printf("分割后的字符串: %s\n", str);
}
阅读全文