C语言 从键盘读入一个字符串,统计其中的数字出现的个数

从键盘读入一个字符串,统计其中的数字出现的个数,要求定义函数sumdig(char ch),检查ch是否是数字并计数,主函数完成键盘输入、计数和屏幕输出功能。

#include <stdio.h>
int sumdig(char ch);// 是数字返回1 不是返回0
int main()
{
    int count=0;
    char c;
    printf("请输入一个字符串");
    while(1)
    {
        c=getchar();
        if(c=='\n')
            break;
        count=count+sumdig(c);
    }
    printf("其中数字的个数为%d",count);
    return 0;
}
int sumdig(char ch)// 是数字返回1 不是返回0
{
    if(ch>='0' && ch<='9')
        return 1;
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-09

可以定义一个字符数组用来保存字符串

然后通过一次扫描来判断数组中每个变量是否为'0'-'9'(包括'0'和'9')

如果是则进行统计

当然也可以使用isdigit来判断是否有数字


下面是一个简单的代码

#include <stdio.h>

int main(int argc,char **argv)
{
    char buf[20];
    int i;
    int count=0;

    printf("请输入一个字符串:");
    scanf("%s",buf);

    for(i=0;buf[i];++i)
    {
        if(isdigit(buf[i]))
            ++count;
    }

    printf("字符串:%s 中有%d个数字!\n",buf,count);

    return 0;
}

第2个回答  2015-06-01
#include<stdio.h>
#include<string.h>
#include<conio.h>

int sumdig(char ch)
{
int num=0;
if(ch>='0'&&ch<='9')
num=1;
return num;
}

int main()
{
char a[100];
int i,sum=0;
scanf("%s",a);
for(i=0;i<strlen(a);i++)
{
sum+=sumdig(a[i]);
}
printf("%d\n",sum);
getch();
return 0;
}本回答被网友采纳
相似回答