来源:华为机试题1
描述 | 计算字符串最后一个单词的长度,单词以空格隔开。 |
---|---|
知识点 | 字符串,循环 |
运行时间限制 | 0M |
内存限制 | 0 |
输入 | 一行字符串,非空,长度小于5000。 |
输出 | 整数N,最后一个单词的长度。 |
样例输入 | hello world |
样例输出 | 5 |
C语言实现
#include<stdio.h>
#include<string.h>
int main()
{
char str[5000];
gets(str); // gets()用来从标准设备读入字符并存到参数str所指的内存空间,直到出现换行字符或读到文件尾为止,最后加上NULL作为字符串结束。
int count=0; // 计数变量
int len=strlen(str); // strlen()计算给定字符串的(unsigned int型)长度,不包括'\0'在内
for(int i=(len-1);i>=0;i--)
{
if(str[i]!=' ')
{
count++;
}
else
{
break; //满足条件时,跳出本层for循环
}
}
printf("%d\n",count);
return 0;
}
补充知识点:
(1)gets()函数
参考:c语言中get()函数的原理及返回值 - 优快云博客 点击打开链接
(2)strlen()函数
参考:C语言中的strlen与sizeof的区别 - 优快云博客 点击打开链接
联想记忆下sizeof()
(3)break
参考:c语言中break和continue的用法和区别 - 优快云博客 点击打开链接
a.break语句通常用在循环语句和开关语句中。当break语句用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。
b.当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。
二、continue语句的作用是跳过本循环中剩余的语句而强制执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。