c语言连续输入字符串用空格隔开
时间: 2025-01-02 08:04:45 浏览: 10
在 C 语言中,如果你想从用户那里连续输入几个字符串,并且每个字符串之间用空格隔开,可以使用标准输入流 `stdin` 和循环结构来实现。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 需要包括此头文件以获取 malloc 功能
int main() {
char** tokens; // 存储字符串的动态数组
int count = 0; // 记录输入的字符串个数
char input[100]; // 用于临时存储用户的输入
fgets(input, sizeof(input), stdin); // 读取一行输入直到遇到换行符
// 检查是否还有剩余输入,如果没有则退出循环
while (input != NULL && input[strlen(input) - 1] != '\n') {
char* token = strtok(input, " "); // 使用空格作为分隔符
if (token == NULL) break; // 如果没有更多分隔的词,则结束
// 对于每一个找到的单词,创建一个新的动态数组元素并添加到数组中
tokens = realloc(tokens, (count + 1) * sizeof(char*));
tokens[count++] = strdup(token);
// 更新输入字符串,去掉已经处理的部分
input = strtok(NULL, " ");
}
// 在这里你可以对tokens进行操作,例如打印它们或者做其他处理
for (int i = 0; i < count; i++) {
printf("%s ", tokens[i]);
}
printf("\n");
// 清理动态分配的内存
for (int i = 0; i < count; i++) {
free(tokens[i]);
}
free(tokens);
return 0;
}
```
这个程序会不断地从用户那里获取输入,直到输入行结束(通常由回车符`\n`表示)。它使用`strtok`函数将输入分割成单独的单词,然后将它们存储在动态数组`tokens`中。
阅读全文