summaryrefslogtreecommitdiff
path: root/devdocs/c/string%2Fbyte%2Fisalnum.html
blob: 98f0442139d727d0b98b48a783d6647c9b345f98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
    <h1 id="firstHeading" class="firstHeading">isalnum</h1>            <table class="t-dcl-begin"> <tr class="t-dsc-header"> <th> Defined in header <code>&lt;ctype.h&gt;</code> </th> <th> </th> <th> </th> </tr> <tr class="t-dcl"> <td class="t-dcl-nopad"> <pre data-language="c">int isalnum( int ch );</pre>
</td> <td class="t-dcl-nopad"> </td> <td class="t-dcl-nopad"> </td> </tr>  </table> <p>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:</p>
<ul>
<li> digits (<code>0123456789</code>) </li>
<li> uppercase letters (<code>ABCDEFGHIJKLMNOPQRSTUVWXYZ</code>) </li>
<li> lowercase letters (<code>abcdefghijklmnopqrstuvwxyz</code>) </li>
</ul> <p>The behavior is undefined if the value of <code>ch</code> is not representable as <code>unsigned char</code> and is not equal to <code><a href="http://en.cppreference.com/w/c/io"><span class="kw888">EOF</span></a></code>.</p>
<h3 id="Parameters"> Parameters</h3> <table class="t-par-begin"> <tr class="t-par"> <td> ch </td> <td> - </td> <td> character to classify </td>
</tr>
</table> <h3 id="Return_value"> Return value</h3> <p>Non-zero value if the character is an alphanumeric character, <code>0</code> otherwise.</p>
<h3 id="Example"> Example</h3> <div class="t-example">
<p>Demonstrates the use of <code>isalnum</code> with different locales (OS-specific).</p>
<div class="c source-c"><pre data-language="c">#include &lt;stdio.h&gt;
#include &lt;ctype.h&gt;
#include &lt;locale.h&gt;
 
int main(void)
{
    unsigned char c = '\xdf'; // German letter ß in ISO-8859-1
 
    printf("isalnum('\\xdf') in default C locale returned %d\n", !!isalnum(c));
 
    if(setlocale(LC_CTYPE, "de_DE.iso88591"))
        printf("isalnum('\\xdf') in ISO-8859-1 locale returned %d\n", !!isalnum(c));
}</pre></div> <p>Possible output:</p>
<div class="text source-text"><pre data-language="c">isalnum('\xdf') in default C locale returned 0
isalnum('\xdf') in ISO-8859-1 locale returned 1</pre></div> </div> <h3 id="References"> References</h3>  <ul>
<li> C17 standard (ISO/IEC 9899:2018): </li>
<ul><li> 7.4.1.1 The isalnum function (p: 145) </li></ul>
<li> C11 standard (ISO/IEC 9899:2011): </li>
<ul><li> 7.4.1.1 The isalnum function (p: 200) </li></ul>
<li> C99 standard (ISO/IEC 9899:1999): </li>
<ul><li> 7.4.1.1 The isalnum function (p: 181) </li></ul>
<li> C89/C90 standard (ISO/IEC 9899:1990): </li>
<ul><li> 4.3.1.1 The isalnum function </li></ul>
</ul>               <h3 id="See_also"> See also</h3> <table class="t-dsc-begin"> <tr class="t-dsc"> <td> <div><a href="../wide/iswalnum" title="c/string/wide/iswalnum"> <span class="t-lines"><span>iswalnum</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-c95">(C95)</span></span></span></div> </td> <td> checks if a wide character is alphanumeric <br> <span class="t-mark">(function)</span>  </td>
</tr> <tr class="t-dsc"> <td colspan="2"> <span><a href="https://en.cppreference.com/w/cpp/string/byte/isalnum" title="cpp/string/byte/isalnum">C++ documentation</a></span> for <code>isalnum</code> </td>
</tr> </table> <table class="wikitable"> <tr> <th colspan="3"> ASCII values </th> <th rowspan="2"> characters </th> <th rowspan="2"> <p><a href="iscntrl" title="c/string/byte/iscntrl"><code>iscntrl</code></a><br> <a href="../wide/iswcntrl" title="c/string/wide/iswcntrl"><code>iswcntrl</code></a></p>
</th> <th rowspan="2"> <p><a href="isprint" title="c/string/byte/isprint"><code>isprint</code></a><br> <a href="../wide/iswprint" title="c/string/wide/iswprint"><code>iswprint</code></a></p>
</th> <th rowspan="2"> <p><a href="isspace" title="c/string/byte/isspace"><code>isspace</code></a><br> <a href="../wide/iswspace" title="c/string/wide/iswspace"><code>iswspace</code></a></p>
</th> <th rowspan="2"> <p><a href="isblank" title="c/string/byte/isblank"><code>isblank</code></a><br> <a href="../wide/iswblank" title="c/string/wide/iswblank"><code>iswblank</code></a></p>
</th> <th rowspan="2"> <p><a href="isgraph" title="c/string/byte/isgraph"><code>isgraph</code></a><br> <a href="../wide/iswgraph" title="c/string/wide/iswgraph"><code>iswgraph</code></a></p>
</th> <th rowspan="2"> <p><a href="ispunct" title="c/string/byte/ispunct"><code>ispunct</code></a> <br> <a href="../wide/iswpunct" title="c/string/wide/iswpunct"><code>iswpunct</code></a></p>
</th> <th rowspan="2"> <p><strong class="selflink"><code>isalnum</code></strong> <br> <a href="../wide/iswalnum" title="c/string/wide/iswalnum"><code>iswalnum</code></a></p>
</th> <th rowspan="2"> <p><a href="isalpha" title="c/string/byte/isalpha"><code>isalpha</code></a> <br> <a href="../wide/iswalpha" title="c/string/wide/iswalpha"><code>iswalpha</code></a></p>
</th> <th rowspan="2"> <p><a href="isupper" title="c/string/byte/isupper"><code>isupper</code></a><br> <a href="../wide/iswupper" title="c/string/wide/iswupper"><code>iswupper</code></a></p>
</th> <th rowspan="2"> <p><a href="islower" title="c/string/byte/islower"><code>islower</code></a><br> <a href="../wide/iswlower" title="c/string/wide/iswlower"><code>iswlower</code></a></p>
</th> <th rowspan="2"> <p><a href="isdigit" title="c/string/byte/isdigit"><code>isdigit</code></a><br> <a href="../wide/iswdigit" title="c/string/wide/iswdigit"><code>iswdigit</code></a></p>
</th> <th rowspan="2"> <p><a href="isxdigit" title="c/string/byte/isxdigit"><code>isxdigit</code></a><br> <a href="../wide/iswxdigit" title="c/string/wide/iswxdigit"><code>iswxdigit</code></a></p>
</th>
</tr> <tr> <th> decimal </th> <th> hexadecimal </th> <th> octal </th>
</tr> <tr> <td> 0–8 </td> <td> <code>\x0</code>–<code>\x8</code> </td> <td> <code>\0</code>–<code>\10</code> </td> <td> control codes (<code>NUL</code>, etc.) </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 9 </td> <td> <code>\x9</code> </td> <td> <code>\11</code> </td> <td> tab (<code>\t</code>) </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 10–13 </td> <td> <code>\xA</code>–<code>\xD</code> </td> <td> <code>\12</code>–<code>\15</code> </td> <td> whitespaces (<code>\n</code>, <code>\v</code>, <code>\f</code>, <code>\r</code>) </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 14–31 </td> <td> <code>\xE</code>–<code>\x1F</code> </td> <td> <code>\16</code>–<code>\37</code> </td> <td> control codes </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 32 </td> <td> <code>\x20</code> </td> <td> <code>\40</code> </td> <td> space </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 33–47 </td> <td> <code>\x21</code>–<code>\x2F</code> </td> <td> <code>\41</code>–<code>\57</code> </td> <td> <code>!"#$%&amp;'()*+,-./</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 48–57 </td> <td> <code>\x30</code>–<code>\x39</code> </td> <td> <code>\60</code>–<code>\71</code> </td> <td> <code>0123456789</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td>
</tr> <tr> <td> 58–64 </td> <td> <code>\x3A</code>–<code>\x40</code> </td> <td> <code>\72</code>–<code>\100</code> </td> <td> <code>:;&lt;=&gt;?@</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 65–70 </td> <td> <code>\x41</code>–<code>\x46</code> </td> <td> <code>\101</code>–<code>\106</code> </td> <td> <code>ABCDEF</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td>
</tr> <tr> <td> 71–90 </td> <td> <code>\x47</code>–<code>\x5A</code> </td> <td> <code>\107</code>–<code>\132</code> </td> <td> <code>GHIJKLMNOP</code><br><code>QRSTUVWXYZ</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 91–96 </td> <td> <code>\x5B</code>–<code>\x60</code> </td> <td> <code>\133</code>–<code>\140</code> </td> <td> <code>[\]^_`</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 97–102 </td> <td> <code>\x61</code>–<code>\x66</code> </td> <td> <code>\141</code>–<code>\146</code> </td> <td> <code>abcdef</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td>
</tr> <tr> <td> 103–122 </td> <td> <code>\x67</code>–<code>\x7A</code> </td> <td> <code>\147</code>–<code>\172</code> </td> <td> <code>ghijklmnop</code><br><code>qrstuvwxyz</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 123–126 </td> <td> <code>\x7B</code>–<code>\x7E</code> </td> <td> <code>\172</code>–<code>\176</code> </td> <td> <code>{|}~</code> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr> <tr> <td> 127 </td> <td> <code>\x7F</code> </td> <td> <code>\177</code> </td> <td> backspace character (<code>DEL</code>) </td> <td class="table-yes">
<b><code>≠0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td> <td class="table-no"> <b><code>0</code></b> </td>
</tr>
</table>           <div class="_attribution">
  <p class="_attribution-p">
    &copy; cppreference.com<br>Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.<br>
    <a href="https://en.cppreference.com/w/c/string/byte/isalnum" class="_attribution-link">https://en.cppreference.com/w/c/string/byte/isalnum</a>
  </p>
</div>