我想在C中创建排名检查功能。如果输入的字符是字母排名则增加。如果是算术运算符则降低秩。我可以使用IF - ELSE
语句来创建它,但为了比较,我必须使用||
(或)来编写每个字母。我试图找到一种捷径。
我正在寻找这样的事情:
#define alphabets 'A'||'B'||'C'||'D' and so on
#define digits '1'||'2'|| and so on
因此,当我使用IF-ELSE时,它应该像
if(char[i]==alphabets)
rank--;
if(char[i]==digits)
rank++;
答案 0 :(得分:3)
标准库中有一些功能可用于您正在尝试执行的操作:
#define alpha(c) ((((c) >= 'a') && ((c) <= 'z')) || (((c) >= 'A') && ((c) <= 'Z')))
#define digit(c) (((c) >= '0') && ((c) <= '9'))
if(alpha(char[i]))
rank--;
if(digit(char[i]))
rank++;
或者,如果这是一个练习,您可以定义function-like macro来执行此操作:
npm shrinkwrap
答案 1 :(得分:2)
没有。你所拥有的ctype.h
并不像那样。但是您可以使用isalpha()
中的函数:isdigit()
和if( isalpha((unsigned char)(char[i])) )
rank--;
if( isdigit((unsigned char)(char[i])) )
rank++;
是您正在寻找的函数。
z = 1