统计字符串中数字,字母,空格的个数

这是C语言课后的一道习题,网上可以找到很多相关的代码,都可以很好的基本完成题目要求

但是,我发现很多的代码都无法实现统计字符串中大于10的数字(只局限于统计0-9之间的数字)

此程序可以改进具有十位,百位,千位,甚至更大的数字的统计:

#include<stdio.h>
int main()
{
    char a[50] ="1 2 3 a b c d @ 15 21 19 88 r 78 100 189 1598 46";
    int i,j;
    int d = 0, c = 0, e = 0,sum=0;
    for (i = 0; i < 50; i++)
    {
        if ((a[i] >= 65 && a[i] <= 90) ||( a[i] >= 97 && a[i] <= 122))
            d++;
        else if (a[i] == 32)
            c++;
        else
        {
            j=i+1;
            if (a[i] >= 48 && a[i] <= 57&&(a[j]==32||a[j]=='\0'))
            e++;
            else
                if(a[i] >= 48 && a[i] <= 57&&a[j]>=48&&a[j]<=57)
                {
                     e++;
                     e=e-1;
                }
        }
    }
    printf("字符中的字母的个数为:%d\n", d);
    printf("字符中空格的个数为:%d\n", c);
    printf("字符中数字的个数为:%d\n",e);

return 0;
}

 

posted @ 2016-07-25 08:55  soyosuyang  阅读(5062)  评论(0编辑  收藏  举报