字符串中各类字符数的统计

img

哪位大神能帮我解惑一下呢?

#include <stdio.h>
int main()
{
    char buf[100]={0};
    int i = 0;
    int zm = 0,nb = 0,sp = 0,ot=0;
    gets(buf);
    while (buf[i])
    {
        if((buf[i]>='A' && buf[i] <= 'Z') || (buf[i]>='a' && buf[i] <= 'z') )
            zm++;
        else if(buf[i]>='0' && buf[i] <= '9')
            nb++;
        else if(buf[i]== ' ')
            sp++;
        else
            ot++;
        i++;
    }
    printf("%d %d %d %d",zm,nb,sp,ot);
    return 0;
}

if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
else if(s[i]>='0'&&s[i]<='9')
else if(s[i]=' ') //空格
else
……
像这样判断字符串的每个字符就行了

ascll码数量很少,可以先统计出每个ascll码的数量,然后再分别相加,这样比较快。不用太多if比较。空间换时间