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 字符串统计入门的主要内容,如果未能解决你的问题,请参考以下文章

hdu 2017 字符串统计

HDU 2017 字符串统计

Hdu 2017 字符串统计

hdu 2017 字符串统计

HDU-ACM2017

HDU-ACM2017