1.随机输入一个字符串, 内含有三个单词,单词间用空格隔开,要求轮流输出三个单词,例如:输入 abc de fghi 输出 adfbegchi要求指针完成用c语言
时间: 2024-09-21 17:10:12 浏览: 46
在C语言中,你可以使用字符数组、指针以及循环结构来实现这个功能。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h> // 需要包含malloc函数
int main() {
char* input; // 存储输入字符串的指针
char* words[3]; // 定义一个数组来存储三个单词
char temp[4] = " "; // 中间临时存储单词间的空格
// 输入字符串
printf("请输入包含三个单词的字符串 (如: abc def ghi): ");
fgets(input, sizeof(input), stdin); // 使用fgets读取用户输入并忽略换行符
input[strlen(input) - 1] = '\0'; // 去除最后的换行符
// 分割字符串为单词
char* token = strtok(input, " "); // 使用空格作为分隔符
int index = 0;
while (token != NULL) {
words[index++] = token;
token = strtok(NULL, " ");
}
// 轮流输出三个单词
for (int i = 0; i < 3; ++i) {
if (i % 2 == 0) { // 每两个单词之间插入空格
strcpy(temp, " ");
printf("%s", temp);
}
printf("%s", words[i]);
}
free(words[0]); // 释放内存
free(words[1]);
free(words[2]);
return 0;
}
```
当你运行这个程序时,它会按照要求打印出轮流输出的三个单词,每个单词之间有一个空格。注意,此代码会在每次迭代结束后释放单词数组中的元素,以避免内存泄漏。
阅读全文