std::iswdigit
Von cppreference.com
| Definiert in Header <cwctype> |
||
| int iswdigit( wint_t ch ); |
||
Prüft, ob das gegebene Breitzeichen (bei Verengung) einem der zehn Dezimalziffernzeichen 0123456789 entspricht.
Wenn der Wert von ch weder als wchar_t darstellbar ist noch gleich dem Wert des Makros WEOF ist, ist das Verhalten undefiniert.
Inhalt |
[bearbeiten] Parameter
| ch | - | Wide-Zeichen |
[bearbeiten] Rückgabewert
Ein Wert ungleich Null, wenn das Breitzeichen eine numerische Ziffer ist, andernfalls Null.
[bearbeiten] Hinweise
std::iswdigit und std::iswxdigit sind die einzigen standardmäßigen Breitzeichen-Klassifizierungsfunktionen, die nicht von der aktuell installierten C-Locale beeinflusst werden.
[bearbeiten] Beispiel
Einige Locales bieten zusätzliche Zeichenklassen, die Nicht-ASCII-Ziffern erkennen
Führen Sie diesen Code aus
#include <clocale> #include <cwctype> #include <iostream> void test(wchar_t a3, wchar_t u3, wchar_t j3) { std::wcout << std::boolalpha << "\t '" << a3 << "' '" << u3 << "' '" << j3 << "'\n" << "iswdigit: " << (bool)std::iswdigit(a3) << " " << (bool)std::iswdigit(u3) << " " << (bool)std::iswdigit(j3) << '\n' << "jdigit: " << (bool)std::iswctype(a3, std::wctype("jdigit")) << ' ' << (bool)std::iswctype(u3, std::wctype("jdigit")) << ' ' << (bool)std::iswctype(j3, std::wctype("jdigit")) << '\n'; } int main() { wchar_t a3 = L'3'; // the ASCII digit 3 wchar_t u3 = L'三'; // the CJK numeral 3 wchar_t j3 = L'3'; // the full-width digit 3 std::setlocale(LC_ALL, "en_US.utf8"); std::wcout << "In American locale:\n"; test(a3, u3, j3); std::wcout << "\nIn Japanese locale:\n"; std::setlocale(LC_ALL, "ja_JP.utf8"); test(a3, u3, j3); }
Mögliche Ausgabe
In American locale:
'3' '三' '3'
iswdigit: true false false
jdigit: false false false
In Japanese locale:
'3' '三' '3'
iswdigit: true false false
jdigit: false false true[bearbeiten] Siehe auch
| prüft, ob ein Zeichen von einer Locale als Ziffer klassifiziert wird (Funktionstemplate) | |
| prüft, ob ein Zeichen eine Ziffer ist (Funktion) | |
| C-Dokumentation für iswdigit
| |
| ASCII-Werte | Zeichen |
isdigit |
|||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dezimal | hexadezimal | oktal | |||||||||||||
| 0–8 | \x0–\x8 |
\0–\10 |
Steuercodes (NUL, etc.) |
≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| 9 | \x9
|
\11
|
Tabulator (\t) |
≠0
|
0
|
≠0
|
≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| 10–13 | \xA–\xD |
\12–\15 |
Leerzeichen (\n, \v, \f, \r) |
≠0
|
0
|
≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| 14–31 | \xE–\x1F |
\16–\37 |
Steuercodes | ≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| 32 | \x20
|
\40
|
Leerzeichen | 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
|
Rücktaste (DEL) |
≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|