求解C语言问题 第12题:最后一个单词的长度?

题目给定由大写,小写字母和空格组成的字符串,返回最后一个单词的长度。如果不存在最后一个单词,返回0注意:“单词”是指不包含空格符号的字符串例如:s=“helloWorld... 题目

给定由大写,小写字母和空格组成的字符串,返回最后一个单词的长度。
如果不存在最后一个单词,返回0
注意:
“单词”是指不包含空格符号的字符串
例如:
s = “hello World”, 那么返回的结果是5
格式:
第一行输入字符串s,然后输出s中最后一个单词的长度。

我的代码
#include<stdio.h>
int main(){
int i,j,k;
char c[13000];

c[1]=getchar();
i=1;
while (c[i]!='\n')
{
c[i+1]=getchar();
i++;
}
i--;

while (c[i]==' ') i--;
j=i;

while ((c[j]>='A'&&c[j]<='Z')||(c[j]>='a'&&c[j]<='z')) j--;
j++;
k=i-j+1;
if (k==0) return 0;
printf ("%d",k);
return 0;
}

我自己测试都没问题 怎么过不了。
还有 不存在最后一个单词 是什么意思能举个例子么
展开
 我来答
felithuang
2014-07-27 · TA获得超过849个赞
知道小有建树答主
回答量:520
采纳率:50%
帮助的人:713万
展开全部
就这个题目本身来看的话,应该是要你写一个函数:
int lastWordSize(const char* str);
来实现计算最后一个单词的长度吧。
虽然你这个程序大体逻辑能完成,但看计算过程,i的值都让人看不懂。
建议按这方法试试吧。
kaixingui2012
2014-07-27 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6490万
展开全部
如果不存在最后一个单词,返回0,应该是指你直接输入回车时,没有数据时应该输出0

if (k==0) return 0; 去掉这一句再试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9bea863
2014-07-27 · 超过20用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:39.1万
展开全部
刚刚刚试了一下,全是空格的就不行,或者最后一个是空格的话应该就是输出0 了吧,改一下试一试,应该是这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式