如何读入两个带空格的字符串
时间: 2024-12-22 19:29:28 浏览: 4
在C语言中,如果你想读取两个带空格的字符串,可以使用`fgets()`配合`strtok()`函数。下面是一个基本的例子:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[50], str2[50];
// 第一次读取第一个字符串
printf("请输入第一个字符串(包含空格): ");
fgets(str1, sizeof(str1), stdin);
// 移除换行符
if (str1[strlen(str1)-1] == '\n') {
str1[strlen(str1) - 1] = '\0'; // 或者使用 str1[strcspn(str1, "\n")] = '\0';
}
// 使用strtok()分割字符串,获取每个单词并存储在str2中
char *token = strtok(str1, " ");
while (token != NULL) {
strcpy(str2, token);
str2[strlen(str2)] = '\0'; // 结束字符串并防止溢出
printf("第二个字符串(基于第一个字符串的单词): %s\n", str2);
token = strtok(NULL, " "); // 分割下个单词
}
return 0;
}
```
在这个例子中,我们首先使用`fgets()`读取用户输入,然后用`strtok()`函数分隔字符串,每次迭代都会将一个单独的单词复制到`str2`中。注意,`strtok()`返回的是当前单词的指针,所以我们需要检查是否为NULL来确定是否已经读完所有单词。
阅读全文