在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。
除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过
。
在一行上输出一个整数,代表最后一个单词的长度。
HelloNowcoder
13
在这个样例中,最后一个单词是
,长度为
。
A B C D
1
#include<stdio.h>
#include<string.h>
int main(){
char str[1001];//不超过一千字符+结束符‘\0’
int a;//输入是否为空标识符
while(sanf("%s",str)!=EOF){
a=1;
}
if(a==1){
printf("%d",(int)strlen(str));
}
else{
printf("0"); } return 0; }
直接找最后一个·单词
#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
}