我目前正在讀取一個文件,並將該文件存儲到一個cstring中。我使用strtok解析出了我感興趣的前幾個字符串。之後,子字符串可以是數字(500,150,30)或字符組合(P(4),(K(5))。那裏的字符串庫的簡單方法,以數字和字母之間的區別?\簡單的方法來區分數字和字母C
感謝您的答案傢伙!
我目前正在讀取一個文件,並將該文件存儲到一個cstring中。我使用strtok解析出了我感興趣的前幾個字符串。之後,子字符串可以是數字(500,150,30)或字符組合(P(4),(K(5))。那裏的字符串庫的簡單方法,以數字和字母之間的區別?\簡單的方法來區分數字和字母C
感謝您的答案傢伙!
如果你確信沒有其他符號(@#$%^%& *^),您可以使用isalpha()功能
用法:
isalpha(p);// returns true if its alphabetic and false otherwise.
另請注意,您應該包含ctype.h
。
好,如果你正在讀的字節流,並希望數字和字母來區分可以做到以下幾點:
// returns true if given char is a character, false otherwise
bool is_letter(char c) {
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
}
這是很容易實現它需要的地方。如果你真的想要一個庫函數,你仍然可以使用從ctype.h
的isalpha()
或isdigit()
,它基本上應該做同樣的事情。
N.B:你可能想bool
或unsigned short
之間做出選擇。我不會進入debate。
也許無效不正確的返回類型? – wildplasser
好,「oops」O :-) – zmo
Nitpicking:對於[EBCDIC](http://ascii-table.com/ebcdic-table.php)編碼,'is_letter()'是不正確的。最好的方法是使用標準功能。 – Shahbaz
你可能尋找isalpha
和isdigit
庫函數。
不要認爲_number_和_letter_:認爲'int'和'char',它可能看起來更容易。 – devnull
'的#include'和使用'因而isalpha()'和朋友 –
wildplasser
有也'isdigit'說,如果它是一個數字 – Brandin