#include
int main()
{
char a[1024];
scanf("%s",a);
int l=ln(a);
printf("%d\n",l);
return 0;
}
int ln(char *s)
{
int i=0;
while(*s!='\0')
s++;
s--;
while(*s!=' ')
{
i++;
s--;
}
return i;
}
如果最后一个单词后面有空格,则这个代码会判断出错,另外如果是非字母字符也会判断出错,增加判断当从后往前计算长度时,从第一个字母字符开始.
#include <stdio.h>
#include <ctype.h>
int ln(char *s)
{
int i=0;
while(*s!='\0')
s++;
s--;
//printf("before,s=%s\n",s);
// https://www.runoob.com/cprogramming/c-function-isalpha.html
while(isalpha(*s)!=0)
{
s--;
}
while(*s!=' '){
i++;
s--;
}
// printf("end,s=%d\n",s);
return i;
}
int main()
{
char a[1024];
// scanf("%s",a);
// https://baike.baidu.com/item/gets/787649?fr=aladdin
gets(a);
//printf("a=%s\n",a);
int l=ln(a);
// printf("%d\n",l);
return 0;
}