从char获取字符代码

top*_*erg 1 c++ char

我有一个填充的字符数组cin,但我试图找到一种方法来单独检查每个字符,以确保它只有一个字符集(az,AZ,0-9,[空格]).

我认为可以做到的最简单的方法是检查角色的代码是否落在某个范围内.但不知道如何得到它.

或者,如果有人知道其他任何方式,那将是伟大的.

Mys*_*ial 5

最简单的方法是使用isalpha(),isdigit()isalnum():

char ch = ...  //  The character

//  Original solution
if (isalpha(ch) || isdigit(ch)){

}

//  Better solution by fefe (see comments)
if (isalnum(ch)){

}
Run Code Online (Sandbox Code Playgroud)

这些定义ctype.h如下:http://www.cplusplus.com/reference/clibrary/cctype/

否则你也可以使用比较:

if ('a' <= ch && ch <= 'z' ||
    'A' <= ch && ch <= 'Z' ||
    '0' <= ch && ch <= '9'
){

}
Run Code Online (Sandbox Code Playgroud)

使用比较的后一种方法将推广到任意范围.