我有一個由cin
填充的字符數組,但我試圖找到一種方法來單獨檢查每個字符,以確保它只有一個字符集(az,AZ,0-9 ,[空間])。從字符獲取字符代碼
我認爲這可以做的最簡單的方法是檢查角色的代碼是否落在一定範圍內。但不知道如何得到它。
或者,如果有人知道任何其他方式做到這一點,那就太好了。
我有一個由cin
填充的字符數組,但我試圖找到一種方法來單獨檢查每個字符,以確保它只有一個字符集(az,AZ,0-9 ,[空間])。從字符獲取字符代碼
我認爲這可以做的最簡單的方法是檢查角色的代碼是否落在一定範圍內。但不知道如何得到它。
或者,如果有人知道任何其他方式做到這一點,那就太好了。
最簡單的方法是使用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'
){
}
後者使用比較的方法將推廣到任意範圍。
您可以確定數字是否在ASCII表格內:http://www.asciitable.com/index/asciifull.gif。所以> = 48 & & < 123.
通過使用單引號中需要的字符(例如'A'
),可以輕鬆訪問特定字符代碼。因此,如果你想檢查一個字符是在一定範圍內:
char c = //some character
if (c >= 'A' && c <= 'Z') {
//do something
}
應該工作如你所願。此外,如果您特別關注字母數字,則會在<ctype.h>
中定義一個名爲isalnum
的助手函數,用於檢查字符是否爲字母數字字符。
[此處](http://www.cplusplus.com/reference/clibrary/cctype)中的功能可能有所幫助。 – Lalaland