解析如何利用switch語句進行字符統(tǒng)計

字號:


    #include <stdio.h>
    void cotTime();
    main()
    {
    cotTime();
    }
    void cotTime()
    {
    int c, i, nwhite, nother, ndigit[10];
    nwhite = nother = 0;
    for(i=0;i<10;i++)
    {
    ndigit[i] = 0;
    }
    while((c = getchar()) != EOF)
    {
    switch(c)
    {
    case '0': case '1': case '2': case '3': case '4':
    case '5': case '6': case '7': case '8': case '9':
    /*一種哈希的思想,從觀察數(shù)組元素值為多少的方法中確定某一數(shù)字出現(xiàn)的次數(shù)
    可以演變?yōu)橐环N較快地去重算法,不用先排序后去重,犧牲了空間性能,但是提高了時間性能*/
    ndigit[c-'0'] += 1;
    break;
    case ' ': case '/t': case '/n':
    nwhite++; break;
    default:
    nother++;
    break;
    }
    }
    printf("digits = ");
    for(i=0;i<10;i++)
    {
    printf(" %d",ndigit[i]);
    }
    printf(", white space = %d, other = %d/n", nwhite, nother);
    return 0;
    }