2014-02-16 40 views
1

我目前正在讀取一個文件,並將該文件存儲到一個cstring中。我使用strtok解析出了我感興趣的前幾個字符串。之後,子字符串可以是數字(500,150,30)或字符組合(P(4),(K(5))。那裏的字符串庫的簡單方法,以數字和字母之間的區別?\簡單的方法來區分數字和字母C

感謝您的答案傢伙!

+0

不要認爲_number_和_letter_:認爲'int'和'char',它可能看起來更容易。 – devnull

+4

'的#include '和使用'因而isalpha()'和朋友 – wildplasser

+0

有也'isdigit'說,如果它是一個數字 – Brandin

回答

1

如果你確信沒有其他符號(@#$%^%& *^),您可以使用isalpha()功能

用法:

isalpha(p);// returns true if its alphabetic and false otherwise. 

另請注意,您應該包含ctype.h

1

好,如果你正在讀的字節流,並希望數字和字母來區分可以做到以下幾點:

// 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.hisalpha()isdigit(),它基本上應該做同樣的事情。

N.B:你可能想boolunsigned short之間做出選擇。我不會進入debate

+1

也許無效不正確的返回類型? – wildplasser

+0

好,「oops」O :-) – zmo

+0

Nitpicking:對於[EBCDIC](http://ascii-table.com/ebcdic-table.php)編碼,'is_letter()'是不正確的。最好的方法是使用標準功能。 – Shahbaz

1

你可能尋找isalphaisdigit庫函數。

相關問題