HDU2017 字符串统计入门
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU2017 字符串统计入门相关的知识,希望对你有一定的参考价值。
字符串统计
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 154432 Accepted Submission(s): 84994
Problem Description
对于给定的一个字符串,统计其中数字字符出现的次数。
Input
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
Output
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
Sample Input
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
Sample Output
6
9
Author
lcy
Source
C语言程序设计练习(三)
问题链接:HDU2017 字符串统计
问题简述:(略)
问题分析:
按Markdown格式重写了题解,旧版题解参见参考链接。
对字符串中的字符进行判定统计就可以了。
判定一个字符属于哪一类,可以使用C语言库函数<ctype.h>。判定一个字符是否为数字,可以使用宏isdigit()来实现,是推荐的做法。也可以根据字符编码,用表达式来判定。二者都需要了解掌握。
字符串有多长也不知道,只好把存储字符串的数组声明的大一些,其大小用宏定义来指定。
程序说明:(略)
参考链接:HDU2017 字符串统计【入门】
题记:尽量使用库函数。
AC的C语言程序(函数)如下:
/* HDU2017 字符串统计 */
#include <stdio.h>
#include <ctype.h>
#define N 4096
char s[N];
int main(void)
{
int n, cnt, i;
scanf("%d", &n);
while (n--) {
/* 计数清零 */
cnt = 0;
/* 读入字符串 */
scanf("%s", s);
/* 统计数字字符个数 */
for (i = 0; s[i]; i++)
if (isdigit(s[i])) cnt++;
/* 输出结果 */
printf("%d\\n", cnt);
}
return 0;
}
AC的C语言程序如下:
/* HDU2017 字符串统计 */
#include <stdio.h>
#define N 4096
char s[N];
int main(void)
{
int n, cnt, i;
scanf("%d", &n);
while (n--) {
/* 计数清零 */
cnt = 0;
/* 读入字符串 */
scanf("%s", s);
/* 统计数字字符个数 */
for (i = 0; s[i]; i++)
if ('0' <= s[i] && s[i] <= '9') cnt++;
/* 输出结果 */
printf("%d\\n", cnt);
}
return 0;
}
以上是关于HDU2017 字符串统计入门的主要内容,如果未能解决你的问题,请参考以下文章