我必须在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
答案 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.马上。