Text and Parsing Utilities
Character Classify
Character classification helpers answer questions such as whether a character is a digit or a letter.
isdigit
`std::isdigit` reports whether a character represents a digit.
unsigned char cast
Casting to `unsigned char` before classification avoids undefined behavior for non-ASCII character values.
Character Classify
character_classify.cpp
Replay: real traced execution (multi-file project)
#include <cctype>
#include <iostream>
int main() {
char ch = '7';
bool isDigit = std::isdigit(static_cast<unsigned char>(ch)) != 0;
bool isAlpha = std::isalpha(static_cast<unsigned char>(ch)) != 0;
std::cout << "ch=" << ch << std::endl;
std::cout << "isDigit=" << isDigit << std::endl;
std::cout << "isAlpha=" << isAlpha << std::endl;
return 0;
}
#include <cctype>
#include <iostream>
int main() {
char ch = 'A';
bool isDigit = std::isdigit(static_cast<unsigned char>(ch)) != 0;
bool isAlpha = std::isalpha(static_cast<unsigned char>(ch)) != 0;
std::cout << "ch=" << ch << std::endl;
std::cout << "isDigit=" << isDigit << std::endl;
std::cout << "isAlpha=" << isAlpha << std::endl;
return 0;
}
#include <cctype>
#include <iostream>
int main() {
char ch = '#';
bool isDigit = std::isdigit(static_cast<unsigned char>(ch)) != 0;
bool isAlpha = std::isalpha(static_cast<unsigned char>(ch)) != 0;
std::cout << "ch=" << ch << std::endl;
std::cout << "isDigit=" << isDigit << std::endl;
std::cout << "isAlpha=" << isAlpha << std::endl;
return 0;
}
ch ← 7, isDigit ← 1, isAlpha ← 0
4int main() {5 char ch→ 7 = '7'; //@ch='A', '#'67 bool isDigit→ 1 = std::isdigit(static_cast<unsigned char>(ch7)) != 0;8 bool isAlpha→ 0 = std::isalpha(static_cast<unsigned char>(ch7)) != 0;910 std::cout << "ch=" << ch7 << std::endl;11 std::cout << "isDigit=" << isDigit1 << std::endl;12 std::cout << "isAlpha=" << isAlpha0 << std::endl;13 return 0;14}outputch=7 isDigit=1 isAlpha=0
ch ← A, isDigit ← 0, isAlpha ← 1
4int main() {5 char ch→ A = 'A';67 bool isDigit→ 0 = std::isdigit(static_cast<unsigned char>(chA)) != 0;8 bool isAlpha→ 1 = std::isalpha(static_cast<unsigned char>(chA)) != 0;910 std::cout << "ch=" << chA << std::endl;11 std::cout << "isDigit=" << isDigit0 << std::endl;12 std::cout << "isAlpha=" << isAlpha1 << std::endl;13 return 0;14}outputch=A isDigit=0 isAlpha=1
ch ← #, isDigit ← 0, isAlpha ← 0
4int main() {5 char ch→ # = '#';67 bool isDigit→ 0 = std::isdigit(static_cast<unsigned char>(ch#)) != 0;8 bool isAlpha→ 0 = std::isalpha(static_cast<unsigned char>(ch#)) != 0;910 std::cout << "ch=" << ch# << std::endl;11 std::cout << "isDigit=" << isDigit0 << std::endl;12 std::cout << "isAlpha=" << isAlpha0 << std::endl;13 return 0;14}outputch=# isDigit=0 isAlpha=0