使用c中的#define宏预处理器查找输入是否为字母数字

时间:2018-01-10 05:54:20

标签: c macros c-preprocessor preprocessor alphanumeric

这是我的考试中提出的问题:“从用户处获取的字符的源代码是否为字母数字。”

字母数字表示 - > A-Z | a-z | 0-9 (字母或数字) 如果它返回true或someting。请帮我解决这个问题..

总之,我们将自己构建 isalnum()函数。(使用#define宏)

2 个答案:

答案 0 :(得分:1)

这是宏:

#define IS_ALNUM(x) (((x)>='a' && (x) <= 'z')) ||((x)>='A' && (x) <= 'Z')) || (((x)>='0' && (x) <= '9')))

它测试它是否

  • 在a和z之间
  • 在A和Z之间
  • 0到9之间

非常简单

答案 1 :(得分:0)

我想解决这个问题,谢谢你们所有人。一个人在工作:

#include <stdio.h>

#define IS_LOWER(x)     ((x) <='z' && (x) >= 'a')  //then returns 1, else returns 0.
#define IS_UPPER(x)     ((x) <='Z' && (x) >= 'A')  //then returns 1, else returns 0.
#define IS_NUMERIC(x)   ((x) <= 9  && (x) >=  0 )  //then returns 1, else returns 0.

#define IS_ALPHANUM(x)  (IS_LOWER(x) || IS_UPPER(x) || IS_NUMERIC(x) ? (x) : (-1))
//then returns x, else returns -1.

int main()
{
    int a;
    a=IS_ALPHANUM('h'); //try h character one for example.
    printf("%d",a);
    return 0;
}

有一个很好的编码日