1.随机输入一个字符串, 内含有三个单词,单词间用空格隔开,要求轮流输出三个单词,例如:输入 abc de fghi 输出 adfbegchi要求指针完成用c语言完成
时间: 2024-09-18 17:19:10 浏览: 55
在C语言中,我们可以创建一个函数来接收字符串并按要求轮流输出单词。首先,我们需要分割字符串成单独的单词,并存储在一个字符指针数组中。然后,我们可以利用索引来轮流访问和输出单词。以下是一个简单的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_WORDS 3
#define MAX_CHAR 100
void split_string(char *input, char words[MAX_WORDS][MAX_CHAR]) {
char *token = strtok(input, " "); // 分割字符串
int i = 0;
while (token && i < MAX_WORDS) {
strncpy(words[i], token, MAX_CHAR - 1); // 存储单词
words[i][MAX_CHAR - 1] = '\0'; // 添加字符串结束符
token = strtok(NULL, " "); // 获取下一个单词
i++;
}
}
void print_words轮流(char words[MAX_WORDS][MAX_CHAR]) {
for (int i = 0; i < MAX_WORDS; i++) {
printf("%s ", words[i]);
// 如果不是最后一位,交换前两个单词的位置
if (i < MAX_WORDS - 1) {
char temp[5]; // 存储临时字符
strcpy(temp, words[i]);
strcpy(words[i], words[i + 1]);
strcpy(words[i + 1], temp);
}
}
printf("\n");
}
int main() {
char input[MAX_CHAR];
printf("请输入三个单词,用空格隔开: ");
fgets(input, sizeof(input), stdin);
char words[MAX_WORDS][MAX_CHAR]; // 存储分割后的单词
split_string(input, words);
print_words轮流(words);
return 0;
}
```
在这个例子中,`split_string`函数将输入字符串分割成单词,而`print_words轮流`函数则按照题目要求轮流输出并交换相邻单词。
阅读全文