| Localization library | |||||||||||||||||||||||||
| Regular expressions library(C++11) | |||||||||||||||||||||||||
| Formatting library(C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Functions | ||||||||||||||||||||||||||||||||||||
| Character classification | ||||||||||||||||||||||||||||||||||||
| Character manipulation | ||||||||||||||||||||||||||||||||||||
| Conversions to numeric formats | ||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||
| String manipulation | ||||||||||||||||||||||||||||||||||||
| String examination | ||||||||||||||||||||||||||||||||||||
| Character array functions | ||||||||||||||||||||||||||||||||||||
| Miscellaneous | ||||||||||||||||||||||||||||||||||||
Defined in header <cctype> | ||
int isalnum(int ch); | ||
Checks if the given character is an alphanumeric character as classified by the current C locale. In the default locale, the following characters are alphanumeric:
0123456789)ABCDEFGHIJKLMNOPQRSTUVWXYZ)abcdefghijklmnopqrstuvwxyz)The behavior is undefined if the value ofch is not representable asunsignedchar and is not equal toEOF.
Contents |
| ch | - | character to classify |
Non-zero value if the character is an alphanumeric character,0 otherwise.
Like all other functions from<cctype>, the behavior ofstd::isalnum is undefined if the argument's value is neither representable asunsignedchar nor equal toEOF. To use these functions safely with plainchars (orsignedchars), the argument should first be converted tounsignedchar:
bool my_isalnum(char ch){return std::isalnum(static_cast<unsignedchar>(ch));}
Similarly, they should not be directly used with standard algorithms when the iterator's value type ischar orsignedchar. Instead, convert the value tounsignedchar first:
int count_alnums(conststd::string& s){returnstd::count_if(s.begin(), s.end(),// static_cast<int(*)(int)>(std::isalnum) // wrong// [](int c){ return std::isalnum(c); } // wrong// [](char c){ return std::isalnum(c); } // wrong[](unsignedchar c){return std::isalnum(c);}// correct);}
Demonstrates the use ofstd::isalnum with different locales (OS-specific).
#include <cctype>#include <clocale>#include <iostream> int main(){unsignedchar c='\xdf';// German letter ß in ISO-8859-1 std::cout<<"isalnum(\'\\xdf\', default C locale) returned "<<std::boolalpha<<static_cast<bool>(std::isalnum(c))<<'\n'; if(std::setlocale(LC_ALL,"de_DE.iso88591"))std::cout<<"isalnum(\'\\xdf\', ISO-8859-1 locale) returned "<<static_cast<bool>(std::isalnum(c))<<'\n'; }
Possible output:
isalnum('\xdf', default C locale) returned falseisalnum('\xdf', ISO-8859-1 locale) returned true| checks if a character is classified as alphanumeric by a locale (function template)[edit] | |
| checks if a wide character is alphanumeric (function)[edit] | |
C documentation forisalnum | |
| ASCII values | characters | isalnum | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| decimal | hexadecimal | octal | |||||||||||||
| 0–8 | \x0–\x8 | \0–\10 | control codes (NUL, etc.) | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 9 | \x9 | \11 | tab (\t) | ≠0 | 0 | ≠0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 10–13 | \xA–\xD | \12–\15 | whitespaces (\n,\v,\f,\r) | ≠0 | 0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 14–31 | \xE–\x1F | \16–\37 | control codes | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 32 | \x20 | \40 | space | 0 | ≠0 | ≠0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 33–47 | \x21–\x2F | \41–\57 | !"#$%&'()*+,-./ | 0 | ≠0 | 0 | 0 | ≠0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 48–57 | \x30–\x39 | \60–\71 | 0123456789 | 0 | ≠0 | 0 | 0 | ≠0 | 0 | ≠0 | 0 | 0 | 0 | ≠0 | ≠0 |
| 58–64 | \x3A–\x40 | \72–\100 | :;<=>?@ | 0 | ≠0 | 0 | 0 | ≠0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 65–70 | \x41–\x46 | \101–\106 | ABCDEF | 0 | ≠0 | 0 | 0 | ≠0 | 0 | ≠0 | ≠0 | ≠0 | 0 | 0 | ≠0 |
| 71–90 | \x47–\x5A | \107–\132 | GHIJKLMNOPQRSTUVWXYZ | 0 | ≠0 | 0 | 0 | ≠0 | 0 | ≠0 | ≠0 | ≠0 | 0 | 0 | 0 |
| 91–96 | \x5B–\x60 | \133–\140 | [\]^_` | 0 | ≠0 | 0 | 0 | ≠0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 97–102 | \x61–\x66 | \141–\146 | abcdef | 0 | ≠0 | 0 | 0 | ≠0 | 0 | ≠0 | ≠0 | 0 | ≠0 | 0 | ≠0 |
| 103–122 | \x67–\x7A | \147–\172 | ghijklmnopqrstuvwxyz | 0 | ≠0 | 0 | 0 | ≠0 | 0 | ≠0 | ≠0 | 0 | ≠0 | 0 | 0 |
| 123–126 | \x7B–\x7E | \172–\176 | {|}~ | 0 | ≠0 | 0 | 0 | ≠0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 127 | \x7F | \177 | backspace character (DEL) | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |