华为机试题c语言 HJ1 字符串最后一个单词的长度

本文介绍了一种计算字符串中最后一个单词长度的方法。通过从字符串末尾开始遍历,逐个字符计数直至遇到空格为止,实现对最后一个单词长度的有效测量。

题目:

描述

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

输入描述:

输入一行,代表要计算的字符串,非空,长度小于5000。

输出描述:

输出一个整数,表示输入字符串最后一个单词的长度。

示例1

输入:

hello nowcoder

输出:

8

说明:

最后一个单词为nowcoder,长度为8   

解析:

思路:

从后往前循环,累加计数count,直到遇到第一个空格停止。


注意事项:

c的输入输出
        int scanf(const char *format, ...) 函数从标准输入流 stdin 读取输入,并根据提供的 format 来浏览输入。scanf中不要加非输入文字,比如scanf(“i=%d”),输入的时候必须要输入”i=123”的格式,同理也不要加入”\n”,”,”,因为这些都是要原样输入进去的。同时用空格、回车、tab划分多个变量,这些符号数量不限,所以scanf(“%s’)输入的时候,字符串里面不能用空格或回车
   

        char *gets(char *s) 函数从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。gets()主要用来接收字符串,可以接收空格,遇到‘\n’时结束,但不接收‘\n’,把 ‘\n’留存输入缓冲区;把接收的一串字符存储在形式参数指针指向的空间,并在最后自动添加一个’\0’。示例:gets(a)

#include<stdio.h>
#include<string.h>

int main() {
    char a[5000] = { 0 };
    gets(a);
    int count = 0;
    for (int i = strlen(a) - 1;i >= 0;i--) {
        if (a[i] != ' ') {
            count++;
        }
        if (a[i] == ' ') {
            break;
        }
    }
    printf("%d", count);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值