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

#include<stdio.h>
int main()
{
	char input, blank = ' ';
	int num_letter = 0;
	int flag=0;
	
	while((input = getchar()) != '.'){
		if(input != ' '){
			num_letter++;
		}
		else if(num_letter != 0){
			if(flag != 0){//如果前面有单词,则flag必为1 ,则输出一个空格 
				putchar(blank);
			}
			flag = 1;
			printf("%d",num_letter);
			num_letter = 0; 
		}
		else{
			continue;
		}
	}
	if(flag == 1&&num_letter != 0){//在最后一个单词时,读到空格就直接跳到continue,然后读到‘.’就退出循环了 
		putchar(blank);//保证前面一定有单词 输出一个空格 
	}
	if(num_letter){
		printf("%d",num_letter);//输出在循环中计算的最后一个单词个数 
	}
	return 0;
 } 

 

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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函数输出当前单词长度。 希望这个回答对您有所帮助!如果您对此还有任何疑问,请随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值