HJ1 字符串最后一个单词的长度

本文介绍了如何在C语言和Python中计算输入字符串最后一个单词的长度,包括C语言使用scanf和strlen,以及Python通过split函数处理。同时提到了EOF在不同环境中的作用和Python2与Python3在input函数上的差异。
摘要由CSDN通过智能技术生成
描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

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

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

示例1
输入:

hello nowcoder
输出:

8
说明:

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

C语言解法:

#include <stdio.h>

#include <string.h>



int main() {

    int a[5000] = {0};

    int len = 0;



    while(EOF != scanf("%s", &a))

    {}

    len = strlen(a);

    printf("%d", len);

    return 0;

}

注意:在nowcoder.com中测试用例最后输入的是EOF,因此可行,本地编译器输入的话需要手动输入EOF结尾

知识点:

①EOF是End Of File的缩写,表示“文件结束”。windows平台为ctrl+Z,linux平台是ctrl+D。

②每一次scanf对str都相当于重新读写,即会先初始化

Python3解法:

# -*- coding: UTF-8 -*-

import sys



str = input()        # 输入字符串str

arr = str.split()    # 以空格分割字符串并将结果存入数组arr

n = len(arr) - 1     # 获取数组最后一个元素的索引

print(len(arr[n]))   # 打印最后一个元素arr[n]的长度即为最后一个单词的长度

知识点:

①Import sys

        在c或C++中,头文件可以提供程序所需的各种函数和变量的定义,可被主程序或其他程序调用。Python中不存在头文件的概念,因为Python是动态语言,变量和函数不需要提前声明。在Python的程序中,可以直接引用其他库的函数或变量,而不需要显式的在程序中引入头文件。Import sys即引入sys模块,该模块包含了Python解释器和它的环境有关的函数。执行import sys时,它在sys.path变量中所列目标中寻找sys.py模块。

②python变量无需定义数据类型即可使用

        Python变量是没有数据类型的,这是因为Python是动态类型语言,它不需要在声明变量时显式指定变量的类型。变量的类型是根据变量存储的值来确定的,因此变量可以改变其类型。

③input()函数

        定义:接收一个标准输入数据

        语法:input("提示的内容"),例如:name = input("请输入你的名字:")

        返回值:string类型

        补充:可与变量类型结合使用,进行强转,用于变量计算,例如:name = int(input("请输入你的名字:"))

④str.split(str="", num=string.count(str))函数

        定义:Python split()通过指定分隔符对字符串进行切片,如果参数num有指定值,则分隔符num+1个子字符串。

        语法:str.split(str="", num=string.count(str));str---分隔符,默认为所有的空字符串,包括空格、换行(\n),制表符(\t)等;num---分隔次数,默认为-1,即分隔所有。例如:str = "Hello#World!"   str1 = str.split("#", 1)---以"#"为分割符,分割1次,分割程两个字符串

        返回值:返回分割后的字符串列表

        补充:len(list)---可以获取列表最后一个元素的索引

但有个疑问就是如果使用python2解释器,会提示SyntaxError: unexpected EOF while parsing,猜测是python3和python2中input函数有却别,但还没有找到确定的原因

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值