C语言程序要读入一行文本,以空格分隔若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。 30

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

输入格式:

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

输出格式:

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

输入样例:

It's great to see you here.

输出样例:

4 5 2 3 3 4
展开
 我来答
刺友互
高粉答主

2019-06-28 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:65.3万
展开全部

1、首先,定义一个常量,控制字符串的长度。

2、定义两个数组,保存文章中的字符和最短单词。

3、用do-while循环控制输入文章,条件是不等于句号。

4、取文章中的字符,保存在数组art中。

5、用for循环控制获取文章中的最短单词,条件是小于等于l。

6、用if语句判断是否为空格和句号,获取一个单词。

7、获取最短单词,并保存在数组word中。运行程序,输入以句号结束的英文文章,电脑就会输出最短的单词和单词长度。

zyz郑远征
推荐于2016-07-30 · TA获得超过1116个赞
知道小有建树答主
回答量:462
采纳率:100%
帮助的人:466万
展开全部
#include <stdio.h>
#include <string.h>
void main()
{
char str[256] = "";
char tmp[sizeof(str)] = "";
char *p ;

gets(str);
strncpy(tmp, str,strlen(str) - 1);//去掉后面的.
p = strtok(tmp, " ");
printf("%d ", strlen(p));
while((p = strtok(NULL, " ")))
printf("%d ", strlen(p));
printf("\n");
}
更多追问追答
追问
输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,"行末没有最后的空格"。
这个行末没有空格如何实现?
追答
不符合你的要求???
这个行末没有空格啊
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lovefish2022
2015-04-23 · TA获得超过164个赞
知道答主
回答量:67
采纳率:0%
帮助的人:42.6万
展开全部
好久不编程,忘了,思路应该就是每次读一个字符看是不是空格,不是空格就设个计数器累计
这里计数器可以弄个数组,然后输出就行了,没难度呀
追问
如何在开始定义的时候不指定str的长度?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式