zoukankan      html  css  js  c++  java
  • NOIP2018普及T1暨洛谷P5015 标题统计 题解

    题目链接:https://www.luogu.org/problemnew/show/P5015

    分析:

    这道题大概是给个签到分吧。很显然的字符串操作。本篇题解主要帮助初学者,请大佬略过。

    首先给大家介绍一个叫

    gets(s)gets(s)

    的东东。

    s☞字符串的名称

    他有什么作用呢?

    将一行字符从文件或屏幕中读入,可以读空格,遇到换行跳出。
    —— by 本人

    此题也明显告诉是读入仅一行,我们可以这么做。

    哇!我们现在可以在计算机里进行操作了耶!

    在这里告诉大家noip很重要的一点,读完题要看数据范围。

    为什么呢?因为我们可以理解题目后预估自己的水平后,结合数据范围估计一下自己大概往多少分的目标去。

    扯回正题,那么我们如何知道他给了我们几个字符呢?我们之前一起读了进去,这咋办呢?

    再介绍一个东东——

    strlen(s)strlen(s)

    这里的n指字符串的名称。

    我们在代码中进行如下操作

    int n=strlen(s);
    

    就能把n记为s串的长度了。

    接下来我们看到数据范围:

    1<=s<=51<=∣s∣<=5

    可以穷举一遍!

    我们在程序中进行如下操作:

    for(int i=0;i<n;i++)
    {
    	//do something
    }
    

    然后,我们再采用if语句判断即可。

    40分:

    if(s[i]>='0'&&s[i]<='9')
    		ans++;
    

    80分:

    我暂时都不清楚80分是咋得的。。。

    100分:

    if(s[i]>='A'&&s[i]<='Z')
    ans++;
    if(s[i]>='a'&&s[i]<='z')
    ans++;
    if(s[i]>='0'&&s[i]<='9')
    ans++;
    

    AC完整代码:

    #include<cstdio>
    #include<cstring>
    using namespace std;
    int main()
    {
    	char s[10];
    	gets(s);
    	int n=strlen(s);
    	int ans=0;
    	for(int i=0;i<n;i++)
    	{
    		if(s[i]>='A'&&s[i]<='Z')
    		ans++;
    		if(s[i]>='a'&&s[i]<='z')
    		ans++;
    		if(s[i]>='0'&&s[i]<='9')
    		ans++;
    	}
    	printf("%d",ans);
    	return 0;
    }
    
  • 相关阅读:
    Redis
    Redis
    运维
    Redis
    Redis
    Redis
    Redis
    Redis
    Redis
    Spring
  • 原文地址:https://www.cnblogs.com/vercont/p/10210053.html
Copyright © 2011-2022 走看看