学习目标:
HJ1 字符串最后一个单词的长度
学习内容:
描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
学习产出:
第一种方法
#include<stdio.h>
int main(){
char a[5000]={0};
scanf("%[^\n]",a);
int i,j;
for(i=0;a[i]!='\0';i++){
j=j+1;
if(a[i]==' ')
{
j=0;
}
}
printf("%d\n",j);
return 0;
}
第二种方法
#include<stdio.h>
#include<string.h>//strlen()函数的库
int main(void)
{
char str[50];
int n;
//scanf()函数检测到文件结尾,会返回EOF
//键盘输入文字,系统会通过键盘模拟文件结尾。与读取文件中的结尾类似
while(scanf("%s",str) != EOF)
{
continue;//若不是文件结尾,则跳过不处理
}
n=strlen(str);
printf("%d",n);
return 0;
}
————————————————
版权声明:本文为CSDN博主「lemmon_tree」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lemmon_tree/article/details/122584988
总结:
- scanf("%[^\n]",str);
可以读取空格,以回车为输入操作的结束。 - 第一种算法只能是9/10的成功率,牛客网中输入XSUWHQ时,输出结果为7。但是我在在线编译器上运行却是6,大家有知道的烦请您告知。