给你一个字符串 s
,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
判断是否为空格,然后输出单词头尾数,运行后发现当结尾有空格时不满足题意
int lengthOfLastWord(char * s){
int i,length;
int last,first;
for(i=0;;i++)
{
if(s[i]==' ') first=i+1;
if(s[i]=='\0')
{
last=i;
break;
}
}
length=last-first;
return length;
}
参考题解,我才用倒着从最会一位遍历,并且考虑到最后一位不为‘ ’ 的情况解答如下
int lengthOfLastWord(char * s){
int i,length=0;
int len = strlen(s);
for(i=len-1;i>=0;i--)
{
if(s[i]!=' ') length++;
else if(s[i]==' '&&length!=0) break;
}
return length;
}