NOIP2018普及T1暨洛谷P5015 标题统计 题解

mac2022-06-30  122

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

分析:

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

首先给大家介绍一个叫

gets(s)gets(s)gets(s)

的东东。

s☞字符串的名称

他有什么作用呢?

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

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

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

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

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

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

再介绍一个东东——

strlen(s)strlen(s)strlen(s)

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

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

int n=strlen(s);

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

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

1<=∣s∣<=51<=∣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; }

转载于:https://www.cnblogs.com/vercont/p/10210053.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)