2020-05-28华为机考题--字符串最后一个单词的长度(C语言实现)

如题所述

第1个回答  2022-07-03
计算字符串最后一个单词的长度,单词以空格隔开。

输入描述:
一行字符串,非空,长度小于5000。

输出描述:

整数N,最后一个单词的长度。

示例1

hello world

输出
5

算法思路:
题目要求输出最后一个单词的长度,输入单词之间以空格隔开,从左向右查询,直至字符串中倒数第二个的"空格字符"才是最后一个单词的起始(字符串默认最后一个字符为空格‘\0’),这样查找起来效率不高而且比较复杂。可以反向查找,即从整个字符串末尾开始查找,假设字符串str的总长为s,则最后一个字符的位置为s-1(非末尾空字符),依次向前查找,找到下一个空格为止。过程中计算出到该空格的字符数,即最后一个单词的长度。
程序设计:
输入字符串:

题目未说明字符串大学,故需要申请动态内存大小,用到malloc函数,记住需引用头文件 #include<stdlib.h>
字符串长度获取:
最笨方法:直接计算

注意:isspace()函数是用来验证是否是空字符,需引用头文件<ctype.h>。
相似回答