单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it‘s”算一个单词,

单词长度(4分)
题目内容:

你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it’s”算一个单词,长度为4。注意,行中可能出现连续的空格。

输入格式:

输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。

输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

输入样例:

It’s great to see you here.

输出样例:

4 5 2 3 3 4

时间限制:500ms内存限制:32000kb

来源:中国大学mooc 程序设计入门——C语言

#include<stdio.h>

int main()
{
	int number = 0;
	char str;
	
	while (1)
	{
		scanf("%c",&str);
		if (str=='.')  //如果输入的是.则说明输入结束了 
		{
			if(number!= 0) //进一步说:如果输入的是.且number不是0 
			{
				printf("%d",number);  //输出number 
				break;  //立即退出循环 
			}
		}
		if (str==' ')  //如果输入的是空格 
		{
			if(number!=0)  //进一步说:如果number不是0 而且没有到最后,因.是结束标志 
			{
				printf("%d ",number);   //那么输出number再加上空格, 
				number=0;    // 将number置为0 
			}
		}
		if (str!=' ')  //如果不是空格(字符一类的东西) 
		{
			number++;   //那就number++,进行累加 
		}
	}
}
### 回答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函数输出当前单词长度。 希望这个回答对您有所帮助!如果您对此还有任何疑问,请随时向我提问。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值