我有一个由cin
填充的字符数组,但是我试图找到一种方法来单独检查每个字符,以确保它只有一组字符(az,AZ,0-9, [空间])。
我认为可以做到的最简单的方法是检查角色的代码是否落在某个范围内。但不知道如何得到它。
或者,如果有人知道其他任何方式,那就太棒了。
答案 0 :(得分:5)
最简单的方法是使用isalpha()
,isdigit()
或isalnum()
:
char ch = ... // The character
// Original solution
if (isalpha(ch) || isdigit(ch)){
}
// Better solution by fefe (see comments)
if (isalnum(ch)){
}
这些内容在ctype.h
:http://www.cplusplus.com/reference/clibrary/cctype/
否则你也可以使用比较:
if ('a' <= ch && ch <= 'z' ||
'A' <= ch && ch <= 'Z' ||
'0' <= ch && ch <= '9'
){
}
后一种使用比较的方法将推广到任意范围。
答案 1 :(得分:3)
您可以使用单引号中所需的字符轻松访问特定字符代码,例如'A'
。因此,如果您想检查角色是否在某个范围内:
char c = //some character
if ( c >= 'A' && c <= 'Z' ) {
//do something
}
应该按照您的预期工作。此外,如果您特别关注字母数字,那么在isalnum
中定义了一个名为<ctype.h>
的辅助函数,用于检查字符是否为字母数字字符。
答案 2 :(得分:1)
您可以在ASCII表格中确定该数字是否在您要查找的范围内:http://www.asciitable.com/index/asciifull.gif。所以&gt; = 48&amp;&amp; &LT; 123。