在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。
除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过
。
在一行上输出一个整数,代表最后一个单词的长度。
HelloNowcoder
13
在这个样例中,最后一个单词是
,长度为
。
A B C D
1
#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 }
#include <stdio.h> #include <string.h> #define N 5000 int main() { int a, b; char str[N]; while (scanf("%s", &str) != EOF) { // 注意 while 处理多个 case a = 0; } a = strlen(str); printf("%d", a); return 0; }
#include <stdio.h> int main() { char a; int num=0; while(scanf("%c",&a)&&a!='\n'){ if(a==' '){num=0;} else {num++;} } printf("%d",num); return 0; }有没有更快的方法