https://leetcode-cn.com/problems/length-of-last-word/
先找到最后一个字母的下标(即最后一个单词的末尾),再找到这个单词开头的第一个字母的下标,即可得到单词长度。
一开始while语句条件的判定写成了s[i]==' '&&i>=0,在测试用例"joyful"的情况下老报错heap-buffer-overflow。后来突然想到&&的执行方向是从左到右,也就是先判断s[i]是否为空格,再判断i是否为合法下标,就导致了越界的可能性。
int lengthOfLastWord(char * s){
int n=strlen(s);
int i=n-1;
while(i>=0&&s[i]==' ') i--;
n=i;
while(i>=0&&s[i]!=' ') i--;
return n-i;
}