统计一行文本的单词个数 (15分)----------之告别超长C++代码

PTA-统计一行文本的单词个数 (15分)

题目链接(点我

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

Let's go to room 209.

输出样例:

5

思路(就是统计几个单词的题目,单词是以空格分割的)空格是重点
于是,想到Python强大的字符串处理功能,可以用split()方法消除空格(默认是空格(空格不分长短,是空格直接切开,即当一个空格处理),()内可以是其他你需要分隔的字符)
于是…

Python代码如下:

print(len(list(input().split())))

同时附上高效率的C代码

#include <stdio.h>
#include <string.h>
int is_word(char s)
{
    if((s>='a'&&s<='z')||(s>='A'&&s<='Z')||(s>='0'&&s<='9'))
    return -1;
    else if(s==' ')
    return 1;
    return 0;
}
int main()
{
    char s[10000]={'\0'};
    int count=0,i=0;
    gets(s);
    while(s[i]!='\0')
    {
        if((s[i]==' '&&is_word(s[i-1])==-1)||(s[i]==' '&&is_word(s[i+1])==-1))
        count++;
        i++;
    }
    if(s[--i]=='.')
    count++;
    printf("%d",count);
    return 0;
}

喜欢的点个赞吧,谢谢~~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值