<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-menu-disabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-os vector-sticky-header-enabled skin-theme-clientpref-thumb-standard" lang="uk" dir="ltr"><head>
    <meta charset="UTF-8">
    <title>Ctype.h</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" type="image/png" href="./_res_/favicon.png">
    <link rel="canonical" href="https://uk.wikipedia.org/wiki/Ctype.h"> <link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
    <meta name="ResourceLoaderDynamicStyles" content="">
    
    <link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
    <link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
    <link rel="stylesheet" type="text/css" href="./_res_/footer.css">
    <link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
  </head>
  <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Ctype_h rootpage-Ctype_h skin-vector-2022 action-view">
    <div class="mw-page-container">
      <div class="mw-page-container-inner">
        <div class="mw-content-container">
          <main id="content" class="mw-body">
            <header class="mw-body-header vector-page-titlebar">
              <h1 id="firstHeading" class="firstHeading mw-first-heading">ctype.h</h1>
            </header>
            <a id="top"></a>
            <div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
              <div id="contentSub">
                <div id="mw-content-subtitle"></div>
              </div>
              <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="uk" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="uk" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r44188005">
/* start https://uk.wikipedia.org/ */


.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}


/* end   https://uk.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks" role="navigation" style="width: auto;"><tbody><tr><th class="sidebar-heading">
<a href="%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0_%D0%B1%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B8_C" title="Стандартна бібліотека мови C">Заголовні файли C</a></th></tr><tr><td class="sidebar-content" style="text-align: left;">
<ul><li><a href="Assert.h" title="Assert.h">assert.h</a></li>
<li><a href="Complex.h" title="Complex.h">complex.h</a></li>
<li><a class="mw-selflink selflink">ctype.h</a></li>
<li><a href="Errno.h" title="Errno.h">errno.h</a></li>
<li><a href="Fenv.h" title="Fenv.h">fenv.h</a></li>
<li><a href="Float.h" title="Float.h">float.h</a></li>
<li><a href="Inttypes.h" title="Inttypes.h">inttypes.h</a></li>
<li><a href="Iso646.h" title="Iso646.h">iso646.h</a></li>
<li><a href="Limits.h" title="Limits.h">limits.h</a></li>
<li><a href="Locale.h" title="Locale.h">locale.h</a></li>
<li><a href="Math.h" title="Math.h">math.h</a></li>
<li>setjmp.h</li>
<li><a href="Signal.h" title="Signal.h">signal.h</a></li>
<li>stdarg.h</li>
<li><a href="Stdbool.h" title="Stdbool.h">stdbool.h</a></li>
<li><a href="Stddef.h" title="Stddef.h">stddef.h</a></li>
<li><a href="Stdint.h" title="Stdint.h">stdint.h</a></li>
<li><a href="Stdio.h" title="Stdio.h">stdio.h</a></li>
<li>stdlib.h</li>
<li><a href="String.h" title="String.h">string.h</a></li>
<li>tgmath.h</li>
<li><a href="Time.h" title="Time.h">time.h</a></li>
<li><a href="Wchar.h" title="Wchar.h">wchar.h</a></li>
<li><a href="Wctype.h" title="Wctype.h">wctype.h</a></li></ul></td>
</tr></tbody></table>
<p><b>ctype.h</b> — <a href="%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B8%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB" title="Заголовний файл">заголовний файл</a> <a href="%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0_%D0%B1%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%A1" class="mw-redirect" title="Стандартна бібліотека С">стандартної бібліотеки</a> <a href="%D0%A1_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" class="mw-redirect" title="С (мова програмування)">мови програмування С</a>, який містить оголошення функцій для класифікації символів.
</p><p>Аналогічний заголовний файл в С++ зветься cctype.
</p>

<div class="mw-heading mw-heading2"><h2 id="Історія"><span id=".D0.86.D1.81.D1.82.D0.BE.D1.80.D1.96.D1.8F"></span>Історія</h2></div>
<p>Перші системні програмісти на <a href="%D0%A1_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" class="mw-redirect" title="С (мова програмування)">мові C</a> під <a href="Unix" title="Unix">Unix</a> почали розробляти <a href="%D0%86%D0%B4%D1%96%D0%BE%D0%BC%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="Ідіома (програмування)">ідіоми</a> для швидкої класифікації символів за різними типами. Наприклад, у наборі символів <a href="ASCII" title="ASCII">ASCII</a>, такий тест ідентифікує символ великої або малої латинської літери:
</p>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="sc">'A'</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="sc">'Z'</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="sc">'a'</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="sc">'z'</span><span class="p">)</span>
</pre></div>
<p>Однак, ця ідіома <i>не завжди</i> працювала для інших наборів символів, як то <a href="EBCDIC" title="EBCDIC">EBCDIC</a>.
</p><p>Досить швидко, програми почали розростатись подібними один до одного тестами. Програміст може написати ту ж ідіому кількома різними способами, що ускладнює процес розуміння і підвищує ймовірність помилок.
</p><p>Незабаром, найпопулярніші ідіоми було замінено на функції в заголовному файлі <tt>&lt;ctype.h&gt;</tt>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Вміст_файлу_<ctype.h>"><span id=".D0.92.D0.BC.D1.96.D1.81.D1.82_.D1.84.D0.B0.D0.B9.D0.BB.D1.83_.3Cctype.h.3E"></span>Вміст файлу &lt;ctype.h&gt;</h2></div>
<p>Файл &lt;ctype.h&gt; містить прототипи для десятка функцій для класифікації символів. Усі з цих функцій, окрім <code>isdigit</code> та <code>isxdigit</code> є специфічними для конкретної локалі; їхня поведінка може змінитись разом зі зміною локалі.
</p>
<table class="wikitable">

<tbody><tr>
<th>Тести</th>
<th>У вигляді <code>int isfunc(int);</code><br>Повертає позитивне значення у випадку істини, і навпаки.
</th></tr>
<tr>
<td><code>isalnum</code></td>
<td>чи символ є буквою або цифрою
</td></tr>
<tr>
<td><code>isalpha</code></td>
<td>чи символ є буквою
</td></tr>
<tr>
<td><code>isblank</code></td>
<td>чи є пропуском (доданий до C99)
</td></tr>
<tr>
<td><code>iscntrl</code></td>
<td>чи є керуючим символом
</td></tr>
<tr>
<td><code>isdigit</code></td>
<td>чи є цифрою
</td></tr>
<tr>
<td><code>isgraph</code></td>
<td>чи є символом, який має графічне представлення
</td></tr>
<tr>
<td><code>islower</code></td>
<td>чи є символом нижнього регістру
</td></tr>
<tr>
<td><code>isprint</code></td>
<td>чи є символом, який можна надрукувати
</td></tr>
<tr>
<td><code>ispunct</code></td>
<td>чи є символом пунктуації
</td></tr>
<tr>
<td><code>isspace</code></td>
<td>чи є пропуском
</td></tr>
<tr>
<td><code>isupper</code></td>
<td>чи є буквою верхнього регістру
</td></tr>
<tr>
<td><code>isxdigit</code></td>
<td>чи є шістнадцятковим числом
</td></tr>
<tr>
<th>Перетворення символів</th>
<th>У вигляді <code>int tofunc(int);</code><br>Повертає конвертований символ, якщо тільки це не буква.
</th></tr>
<tr>
<td><code>tolower</code></td>
<td>приводить символ до нижнього регістру
</td></tr>
<tr>
<td><code>toupper</code></td>
<td>приводить символ до верхнього регістру
</td></tr></tbody></table>
<p>Стандарт <a href="Single_Unix_Specification" class="mw-redirect" title="Single Unix Specification">Single Unix Specification</a> версії 3 також додає такі функції:
</p>
<table class="wikitable">

<tbody><tr>
<td><code>isascii</code></td>
<td>повертає числове значення символу від 0 до 127
</td></tr>
<tr>
<td><code>toascii</code></td>
<td>конвертує символ у ASCII
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Приклад_використання"><span id=".D0.9F.D1.80.D0.B8.D0.BA.D0.BB.D0.B0.D0.B4_.D0.B2.D0.B8.D0.BA.D0.BE.D1.80.D0.B8.D1.81.D1.82.D0.B0.D0.BD.D0.BD.D1.8F"></span>Приклад використання</h2></div>
<p>Цей приклад зчитує введений користувачем символ, і у випадку, якщо він є буквою,  виводить "It is not a number".
</p>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;ctype.h&gt;</span>

<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="w">    </span><span class="kt">char</span><span class="w"> </span><span class="n">c</span><span class="p">;</span>

<span class="w">    </span><span class="k">while</span><span class="p">(</span><span class="w"> </span><span class="n">scanf</span><span class="p">(</span><span class="s">"%c"</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">c</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">isdigit</span><span class="p">(</span><span class="n">c</span><span class="p">))</span><span class="w"> </span>
<span class="w">            </span><span class="n">printf</span><span class="p">(</span><span class="s">"You have input a number %c</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">c</span><span class="p">);</span>
<span class="w">        </span><span class="k">else</span>
<span class="w">            </span><span class="n">printf</span><span class="p">(</span><span class="s">"It is not a number!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">feof</span><span class="p">(</span><span class="w"> </span><span class="n">stdin</span><span class="w"> </span><span class="p">));</span>

<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<p>Аналогічний приклад на C++:
</p>
<div class="mw-highlight mw-highlight-lang-c++ mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;iostream&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;cctype&gt;</span>

<span class="k">using</span><span class="w"> </span><span class="k">namespace</span><span class="w"> </span><span class="nn">std</span><span class="p">;</span>

<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="w">    </span><span class="kt">char</span><span class="w"> </span><span class="n">c</span><span class="p">;</span>

<span class="w">    </span><span class="k">while</span><span class="p">(</span><span class="w"> </span><span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">c</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">isdigit</span><span class="p">(</span><span class="n">c</span><span class="p">))</span><span class="w"> </span>
<span class="w">            </span><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"You have input a number "</span><span class="o">&lt;&lt;</span><span class="n">c</span><span class="o">&lt;&lt;</span><span class="n">endl</span><span class="p">;</span>
<span class="w">        </span><span class="k">else</span>
<span class="w">            </span><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"It is not a number!"</span><span class="o">&lt;&lt;</span><span class="n">endl</span><span class="p">;</span>
<span class="w">    </span><span class="p">}</span>

<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Посилання"><span id=".D0.9F.D0.BE.D1.81.D0.B8.D0.BB.D0.B0.D0.BD.D0.BD.D1.8F"></span>Посилання</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.opengroup.org/onlinepubs/000095399/basedefs/ctype.h.html">ctype.h</a> <small>[<a rel="nofollow" class="external text" href="https://web.archive.org/web/20090125143840/http://opengroup.org/onlinepubs/000095399/basedefs/ctype.h.html">Архівовано</a> 25 січня 2009 у <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>.]</small> на OpenGroup</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
    This article is issued from <a class="external text" title="Last edited on 2025-09-12" href="https://uk.wikipedia.org/wiki/?title=Ctype.h&amp;oldid=46149039">Вікіпедія</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.uk">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
            </div>
          </main>
        </div>
      </div>
    </div>
     <script src="./_webp_/webpHandler.js"></script>
  

</body></html>