C编写一个将char分类为ASCII的程序?

时间:2016-05-01 04:29:58

标签: c

我必须在C上写这个程序,如果有人可以解释做什么以及如何做,我会非常感激吗?

使用序列和选择,编写一个程序,要求用户输入单个字符。然后,程序必须根据以下ASCII分类表计算并输出字符输入的类型:

ASCII Classification:        Low:    High: 
Non-Printable                0       31 
Space                        32      32 
Symbol                       33      47
Digit                        48      57 
Symbol                       58      64 
Uppercase                    65      90 
Symbol                       91      96 
Lowercase                    97      122 
Symbol                       123     126 
Non-Printable                127     127

2 个答案:

答案 0 :(得分:0)

您只需使用scanf("%c", &c);获取输入,只需使用一堆if s,每个范围一个,如果它在该范围内(因为检查c的值作为一个整数将显示该字符的ASCII编号),只是打印说。这是一个非常基本的例子:

#include <stdio.h>

int main(int argc, char **argv)
{
        char c;

        scanf("%c", &c);

        if (c >= 65 && c <= 90)
                printf("%c is uppercase\n", c);

        else if (c >= 97 && c <= 122)
                printf("%c is lowercase\n", c);

        /* 
         * else if (...)
         *         ... (add code for other cases here, i.e., symbol/space/digit) 
         */

        else
                printf("character is non-printable\n");

        return 0;
}

These函数也可能对您有用。

答案 1 :(得分:0)

当您可以接受要求并将它们几乎直接放入代码中时,您处于理想状态。

typedef struct  {
    char* classification;
    char low;
    char high;
} Classification;

Classification classifications[] = {
    { "Non-Printable                ", 0       , 31  },
    { "Space                        ", 32      , 32  },
    { "Symbol                       ", 33      , 47  },
    { "Digit                        ", 48      , 57  },
    { "Symbol                       ", 58      , 64  },
    { "Uppercase                    ", 65      , 90  },
    { "Symbol                       ", 91      , 96  },
    { "Lowercase                    ", 97      , 122 },
    { "Symbol                       ", 123     , 126 },
    { "Non-Printable                ", 127     , 127 }    
};

int main(void) {
    char test = '~';

    int numberOfClassifications = 
        sizeof(classifications)/sizeof(classifications[0]);

    int i;
    for (i = 0; i < numberOfClassifications; i++)
    {
        Classification classification = classifications[i];
        if (test >= classification.low && test <= classification.high)
        {
            puts(classification.classification);
            return 0; // success
        }
    }
    fputs("Character is not in the classification table.", stderr);
    return 1; // error
}

什么&#34;使用序列和选择&#34;意味着没有回答,所以这次技术可能不适合你。但这是一件好事。

我粘贴了表格,然后使用column mode editor通过将{ "",,},插入所有列,使其成为有效的C.马上。