C++程序要读入一行文本,其中以空格分隔为若干个单词,以“结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如"it's"算一个单词,长度为 4。
时间: 2023-09-03 09:25:50 浏览: 111
文本文件中删除某一行怎么实现
4星 · 用户满意度95%
### 回答1:
可以使用C++的字符串处理函数来简化这个问题。具体的思路如下:
1. 使用getline()函数读入一行文本到一个字符串变量中。
2. 使用stringstream将字符串按照空格分割成多个单词。
3. 遍历每个单词,使用size()函数获取其长度并输出即可。
下面是具体代码实现:
```c++
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
string line;
getline(cin, line); // 读入一行文本
stringstream ss(line);
string word;
while (ss >> word) { // 使用stringstream分割单词
cout << word.size() << " "; // 输出单词长度
}
cout << endl;
return 0;
}
```
输入一个示例文本:
```
This is a test. The test is over.
```
输出结果:
```
4 2 1 4 3 3 2 4 2 4 5
```
### 回答2:
你可以使用C语言中的字符串函数来实现这个功能。首先,你需要使用scanf函数读取一行文本。然后,你可以使用strtok函数将文本按空格分割为多个单词,并依次计算每个单词的长度。
下面是一个示例代码,供你参考:
```
#include <stdio.h>
#include <string.h>
int main() {
char text[1000]; // 定义一个足够大的字符数组来存储输入的文本
printf("请输入一行文本:");
scanf("%[^\n]", text); // 读取一行文本,可以包含空格
char *word = strtok(text, " "); // 使用空格分割字符串
while (word != NULL) {
int length = strlen(word); // 计算单词的长度
printf("单词:%s,长度:%d\n", word, length);
word = strtok(NULL, " "); // 继续下一个单词
}
return 0;
}
```
使用这个代码,你可以通过输入一行文本,然后程序会输出每个单词和它们的长度。例如,如果输入文本为"Hello world! It's a beautiful day.",程序会输出:
```
单词:Hello,长度:5
单词:world!,长度:6
单词:It's,长度:4
单词:a,长度:1
单词:beautiful,长度:9
单词:day.,长度:4
```
注意:这个代码示例中假设单词之间只有一个空格分隔,如果文本中有多个连续的空格或其他特殊字符(如逗号、句号等),可能需要根据具体情况做一些调整。
### 回答3:
您好!根据您的要求,我们需要编写一个程序,能够读入一行文本,并以空格为分隔符,将该行文本分解为若干个单词。然后,我们可以计算并输出每个单词的长度。
首先,我们可以使用字符串的split函数将输入的文本按空格分隔成一个单词列表。然后,我们可以使用一个循环遍历这个单词列表,计算每个单词的长度,并逐个输出。
以下是一个示例的Python代码,实现了上述功能:
```python
text = input("请输入一行文本:") # 读入一行文本
words = text.split() # 将文本按空格分隔为单词列表
for word in words:
length = len(word) # 计算单词的长度
print("单词'{}'的长度为:{}".format(word, length))
```
这段代码首先使用input函数读入一行文本,并将其赋值给变量text。然后,我们调用字符串的split方法,将这个文本按空格分隔为一个单词列表words。
接下来,我们使用for循环遍历这个单词列表。在每次循环中,我们使用len函数获取当前单词的长度,并将其赋值给变量length。然后,我们使用print函数输出当前单词的长度。
希望这个回答对您有所帮助!如果您对此还有任何疑问,请随时向我提问。
阅读全文