在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。
除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过
。
在一行上输出一个整数,代表最后一个单词的长度。
HelloNowcoder
13
在这个样例中,最后一个单词是
,长度为
。
A B C D
1
直接找最后一个·单词 #include <stdio.h> #include<stdlib.h> int main() { char s[1001]; while (scanf("%s", s) != EOF) { // 注意 while 处理多个 case } int ans = 0; // 找最后一个单词,注意这里字符串输入空格出现了问题,所以需要频繁输入 int i = strlen(s) - 1; while (i >= 0 && s[i] != ' ') { i--; ans++; } printf("%d", ans); return 0; }
#include <stdio.h> //输入后开始计数,遇到空格且后边还有字符串则count清零 int main() { int count = 0; char ch = '\n'; int flag = 0;//区分空格后边还有没有字符 while ((ch=getchar())!='\n') { if ((ch!=' ')&&flag==0) { count++; }else if ((ch!=' ')&&flag==1) { count=1; flag = 0; } else if ((ch==' ')&&flag==0) { flag = 1; } } printf("%d",count); return 0; }
#include<stdio.h> #include <stdlib.h> int main() { char stance[1000]; int lastlen=0; gets(stance);//用scanf在输入出现空格时会异常,故用gets(不过有溢出风险 int len=strlen(stance); for(int i=len-1;i>=-1;i--) { if(i!=-1)//判断输入的是句子(带有空格的)还是单词 { if(stance[i]==' ')//检测空格 { lastlen=len-i-1; break; } } if(i==-1) { lastlen=len; } } printf("%d\n",lastlen); return 0; }
#include<stdio.h> int main(){ char ch=0 int str_len=0 while(1){ ch=getchar(); if(ch=='\n') break; else if(ch==''){ str_len=0 }else{ str_len++; } } print("%d\n",str_len) return 0 }