C语言单词长度

你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注... 你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格;最后的‘.’不计算在内。
输入格式:
输入在一行中给出一行文本,以‘.’结束。
提示:用scanf("%c",...);来读入一个字符,直到读到‘.’为止。
输出格式:
在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
输入样例:
It's great to see you here.

输出样例:
4 5 2 3 3 4

怎么分配空间保存一个不确定长度的文本?
展开
 我来答
天下无敌31113
推荐于2017-12-15
知道答主
回答量:5
采纳率:0%
帮助的人:10.4万
展开全部

因为不太清楚你想要问什么所以姑且解了一下这个题目。

这个题目应该是不需要将整个字符串保存下来的,就像楼上的回答说的,每次读入一个字符,先从第一个不是空格的字符开始读,如果不是空格,长度就+1,如果是空格且长度(length)不为0,就输出并且长度清零,如果是空格且长度为0就继续做。

关于你的疑问在C语言中一般是通过声明足够大的空间来解决长度不确定的问题。当然也有通过链表等等方式来保存。链表的方法可以不需要事先声明足够大的空间而是来一个字符就通过malloc申请一个字符的空间存放进去。

匿名用户
2015-05-03
展开全部
其实你可以先创建一个足够大的字符数组
例如
char data[1000000];
然后再定义的计数器
int datacount=0;
最后再输入时
scanf("%c",data[datacount++]);
这样子就可以了
最后datacount就是这一行文本的长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
这个名有人取了
2015-05-03 · TA获得超过685个赞
知道小有建树答主
回答量:311
采纳率:100%
帮助的人:302万
展开全部
这里既然让你用%c一个个地读入字符,你就可以不用把整个文本全部存储起来,可以一边读入字符一边处理,读入非空格当前单词长度就加1,读入空格就清0,下一个非空格就是新单词的开始了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式