c++在输入时连续输入一长串字符,以回车结束,中间有空格,以空格为分界,把这些分成许多个子串,分别存在一个string数组里
时间: 2023-05-18 08:06:22 浏览: 157
好的,这个问题可以回答。您可以使用C语言中的字符串处理函数strtok()来实现这个功能。具体的代码如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 假设输入的字符串长度不超过1000
int main() {
char str[MAX_LEN];
char *p;
char *delim = " "; // 以空格为分隔符
char substrings[MAX_LEN][MAX_LEN]; // 存储子串的二维字符数组
int count = 0; // 子串的个数
fgets(str, MAX_LEN, stdin); // 从标准输入读入字符串
p = strtok(str, delim); // 使用strtok()函数分割字符串
while (p != NULL) {
strcpy(substrings[count], p); // 将分割得到的子串复制到二维字符数组中
count++;
p = strtok(NULL, delim);
}
// 输出每个子串
for (int i = 0; i < count; i++) {
printf("%s\n", substrings[i]);
}
return 0;
}
```
这段代码会从标准输入读入一个字符串,然后使用strtok()函数将其分割成多个子串,并将这些子串存储在一个二维字符数组中。最后,程序会输出每个子串。
阅读全文