使用c++语言,4. 让用户输入一行字符(空格分隔的多个单词),然后输出每一个单词(每行一个单词)。
时间: 2024-01-24 08:03:54 浏览: 80
可以使用 C++ 的字符串流(stringstream)来实现:
```c++
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string line;
std::getline(std::cin, line); // 获取一行输入
std::stringstream ss(line); // 构造字符串流
std::string word;
while (ss >> word) { // 从字符串流中读取每个单词
std::cout << word << std::endl; // 输出单词
}
return 0;
}
```
这个程序首先使用 `std::getline()` 函数从标准输入中读取一行输入,然后使用 `std::stringstream` 类型构造一个字符串流 `ss`,并将读取到的输入传递给它。接着在一个循环中,每次从 `ss` 中读取一个单词,直到读取完所有单词为止。最后输出每个单词。
相关问题
用c++写一个让用户输入一行字符《空格分隔的多个单词),然后输出每一个单词(每行个单词)
以下是用 C 语言编写的程序,让用户输入一行空格分隔的多个单词,并输出每一个单词(每行一个单词):
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[1000];
printf("请输入一行空格分隔的多个单词:");
fgets(str, 1000, stdin); // 从标准输入读取用户输入的字符串
char *token = strtok(str, " "); // 按空格分割字符串,获取第一个单词
while (token != NULL) {
printf("%s\n", token); // 输出当前单词
token = strtok(NULL, " "); // 获取下一个单词
}
return 0;
}
```
程序的执行过程如下:
1. 定义了一个字符数组 `str`,用于存储用户输入的字符串。
2. 使用 `fgets()` 函数从标准输入中读取用户输入的字符串,并将其存储到 `str` 中。这里限定了字符串的最大长度为 1000。
3. 使用 `strtok()` 函数按空格分割字符串,获取第一个单词。
4. 进入一个循环,每次输出当前单词,并使用 `strtok()` 函数获取下一个单词,直到字符串中的所有单词都被输出为止。
5. 程序结束并返回 0。
需要注意的是,这个程序没有对用户输入的字符串进行长度和格式的检查,如果用户输入的字符串长度超过 1000 或者格式不合法,程序可能会出现问题。在实际使用中,应该对用户输入进行相应的验证和处理。
用c++户输入一行字符(空格分隔的多个单词),然后输出每一个单词(每行一个单词
可以使用C++的字符串流istringstream来实现对输入的字符串进行分割,然后输出每个单词。
示例代码如下:
```c++
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
string line;
getline(cin, line); // 读入一行字符串
istringstream iss(line); // 构造字符串流
string word;
while (iss >> word) { // 从字符串流中读取每个单词
cout << word << endl; // 输出每个单词
}
return 0;
}
```
输入示例:
```
Hello world! This is a test.
```
输出示例:
```
Hello
world!
This
is
a
test.
```
阅读全文