std::iswalnum(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’… NAME πŸ’…

Okay bestie, welcome to the std::iswalnum(3) page β€” your C++ Standard Library wide-character alnum vibe check ✨

std::iswalnum β€” literally std::iswalnum, the function that checks whether a wide character is alphanumeric periodt πŸ’…


✨ Synopsis ✨

This cutie is defined in header <cwctype>:

int iswalnum( std::wint_t ch );

So here's the tea: it checks if the given wide character is an alphanumeric character β€” meaning it's either a number (0123456789), an uppercase letter (ABCDEFGHIJKLMNOPQRSTUVWXYZ), a lowercase letter (abcdefghijklmnopqrstuvwxyz), or any alphanumeric character that's specific to the current locale 🌍

🚨 Bestie, danger zone: if the value of ch is neither representable as a wchar_t nor equal to the value of the macro WEOF, the behavior is undefined. Like, do not play with that. 😭

πŸŽ€ Parameters πŸŽ€

  • ch β€” the wide character you're vibe-checking 🫢

πŸ’– Return value πŸ’–

Non-zero value if the wide character is an alphanumeric character, zero otherwise. Slay βœ…


🧚 Notes 🧚

ISO 30112 specifies which Unicode characters are included in the POSIX alnum category. That's the lore πŸ“šβœ¨


🌸 Example 🌸

Run this code, bestie:

// Run this code

#include <clocale>
#include <cwctype>
#include <iostream>

int main()
{
    wchar_t c = L'\u13ad'; // the Cherokee letter HA ('Ꭽ')

    std::cout << std::hex << std::showbase << std::boolalpha;
    std::cout << "in the default locale, iswalnum(" << (std::wint_t)c << ") = "
              << (bool)std::iswalnum(c) << '\n';

    std::setlocale(LC_ALL, "en_US.utf8");
    std::cout << "in Unicode locale, iswalnum(" << (std::wint_t)c << ") = "
              << (bool)std::iswalnum(c) << '\n';
}

πŸ’œ Possible output πŸ’œ

in the default locale, iswalnum(0x13ad) = false
in Unicode locale, iswalnum(0x13ad) = true

πŸ”₯ See also πŸ”₯

  • isalnum(std::locale) β€” checks if a character is classified as alphanumeric by a locale (function template) 🌈
  • isalnum β€” checks if a character is alphanumeric (function) ⭐
  • C documentation for iswalnum πŸ“–

🌈 ASCII values chart 🌈

Here's the full ASCII values reference chart, kept preformatted so every character, number, and β‰ 0 stays exactly where it belongs πŸ’€βœ¨

               ASCII values            characters    iscntrl  isprint  isspace
       isblank  isgraph  ispunct  isalnum  isalpha  isupper  islower  isdigit
       isxdigit decimal hexadecimal   octal                   iswcntrl iswprint
       iswspace iswblank iswgraph iswpunct iswalnum iswalpha iswupper iswlower
       iswdigit iswxdigit 0–8     \x0–\x8     \0–\10    control codes   β‰ 0
       0        0        0        0        0        0        0        0
       0        0        0
                                     (NUL, etc.)  9       \x9         \11
       tab (\t)        β‰ 0       0        β‰ 0       β‰ 0       0        0        0
       0        0        0        0        0
                                     whitespaces 10–13   \xA–\xD     \12–\15
       (\n, \v, \f,    β‰ 0       0        β‰ 0       0        0        0        0
       0        0        0        0        0
                                     \r) 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
       GHIJKLMNOP      0        β‰ 0       0        0        β‰ 0       0        β‰ 0
       β‰ 0       β‰ 0       0        0        0
                                     QRSTUVWXYZ 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
       ghijklmnop      0        β‰ 0       0        0        β‰ 0       0        β‰ 0
       β‰ 0       0        β‰ 0       0        0
                                     qrstuvwxyz 123–126 \x7B–\x7E   \172–\176
       {|}~            0        β‰ 0       0        0        β‰ 0       β‰ 0       0
       0        0        0        0        0 127     \x7F        \177
       backspace       β‰ 0       0        0        0        0        0        0
       0        0        0        0        0
                                     character (DEL)

Catch you later, bestie β€” source: http://cppreference.com, version/date: 2024.06.10, page: std::iswalnum(3) πŸ’…πŸ’–βœ¨

πŸ“¦ where this page comes from