
C:
#include <stdio.h>
#include <string.h>
int main()
{
char c[150] = {0};
char cc;
int N = 0;
int i = 0;
int cnt = 0;
while((cc = getchar()) != '\n')
{
c[i] = cc;
i++;
}
// printf("%d",i);
for(int j = i - 1 ;j >= 0;j--)
{
if(c[j] != ' ' && c[j] != '\0')
{
N++;
}
else if(c[j] == ' ')
{
j = -1;
cnt+=1;
}
}
if(cnt == 0) printf("%d",strlen(c));
else printf("%d",N);
return 0;
}
注意点:
1.可能只输入一个字符串,没有空格,这样的话直接输出字符串长度
2.因为是倒序输出,并且数组初始化为0,所以要排除'\0'的计数,当读完最后一个字符串时就跳出for循环
3.C语言的通病,题目没有给定长度,所以这个数组大小要试,我个人觉得这是个很大的问题,未知长度就不应该用数组做,通过也是因为测试用例的不完整,但对类似题都是做如此处理,只好借鉴。
python:
s = input()
print(len(s.split()[-1]))
笔记:split切片