Нуль-терминированные однобайтовые строки
Материал из cppreference.com
Нуль-терминированная однобайтовая строка (null-terminated byte string -- NTBS) это последовательность ненулевых байтов с последним байтом, имеющим значение ноль (завершающий нулевой символ). Каждый байт в однобайтовой строке кодирует один символ из некоторого набора символов. Например, символьный массив {'\x63','\x61','\x74','\0'} это NTBS, содержащий строку "cat" в кодировке ASCII.
Функции
Классификация символов | |
Определены в заголовочном файле
<ctype.h> | |
| проверяет, является ли символ алфавитно-цифровым (функция) | |
| проверяет, является ли символ алфавитным (функция) | |
| проверяет, является ли символ буквой в нижнем регистре (функция) | |
| проверяет, является ли символ буквой в верхнем регистре (функция) | |
| проверяет, является ли символ цифрой (функция) | |
| проверяет, является ли символ шестнадцатеричной цифрой (функция) | |
| проверяет, является ли символ управляющим (функция) | |
| проверяет, является ли символ графическим (функция) | |
| проверяет, является ли символ пробельным (функция) | |
(C99) |
проверяет, является ли символ пустым (функция) |
| проверяет, является ли символ печатаемым (функция) | |
| проверяет, является ли символ пунктуационным (функция) | |
Манипуляции с символами | |
| переводит символ в нижний регистр (функция) | |
| переводит символ в верхний регистр (функция) | |
Замечание: в будущем в заголовочный файл ctype.h могут быть добавлены дополнительные функции, чьи имена начинаются с to или is с последующей буквой в нижнем регистре, они не должны определяться в программах, использующих этот заголовочный файл.
| Значения ASCII | символы | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| десятичное | шестнадцатиричное | восьмиричное | |||||||||||||
| 0–8 | \x0–\x8
|
\0–\10
|
управляющие коды (NUL и т. д.)
|
≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| 9 | \x9
|
\11
|
табуляция (\t)
|
≠0
|
0
|
≠0
|
≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| 10–13 | \xA–\xD
|
\12–\15
|
символы-разделители (\n, \v, \f, \r)
|
≠0
|
0
|
≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| 14–31 | \xE–\x1F
|
\16–\37
|
управляющие коды | ≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| 32 | \x20
|
\40
|
пробел | 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
|
стирающий символ (DEL)
|
≠0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
Преобразования в и из числовых форматов | |
Определены в заголовочном файле
<stdlib.h> | |
| конвертирует однобайтовую строку в вещественночисленное значение (функция) | |
(C99) |
преобразует однобайтовую строку в целочисленное значение (функция) |
(C99) |
конвертирует однобайтовую строку в целочисленное значение (функция) |
(C99) |
преобразует однобайтовую строку в беззнаковое целое значение (функция) |
(C99)(C99) |
конвертирует однобайтовую строку в вещественночисленное значение (функция) |
(C23)(C23)(C23) |
преобразует значение с плавающей точкой в однобайтовую строку (функция) |
Определены в заголовочном файле
<inttypes.h> | |
(C99)(C99) |
конвертирует однобайтовую строку в intmax_t или uintmax_t (функция) |
Манипуляция со строками | |
Определены в заголовочном файле
<string.h> | |
| копирует одну строку в другую (функция) | |
| копирует определённое число символов из одной строки в другую (функция) | |
| объединяет две строки (функция) | |
| конкатенирует определённое число символов двух строк (функция) | |
| преобразует строку так, что она может быть использована в функциях сравнения строк (функция) | |
(C23) |
размещает копию строки (функция) |
(C23) |
размещает копию строки указанного размера (функция) |
Исследование строк | |
Определены в заголовочном файле
<string.h> | |
(C11) |
возвращает длину данной строки (функция) |
| сравнивает две строки (функция) | |
| сравнивает определённое число символов двух строк (функция) | |
| сравнивает две строки в соответствии с текущей локалью (функция) | |
| находит первое вхождение заданного символа (функция) | |
| находит последнее вхождение заданного символа (функция) | |
| возвращает длину максимального начального промежутка, содержащего только те символы, которые входят в другую строку (функция) | |
| возвращает длину максимального начального промежутка, содержащего только те символы, которые не входят в другую строку (функция) | |
| находит первое вхождение любого символа одной строки в другой строке (функция) | |
| находит первое вхождение заданной подстроки (функция) | |
(C11) |
находит следующую лексему в однобайтовой строке (функция) |
Манипуляции с символьными массивами | |
Определены в заголовочном файле
<string.h> | |
| ищет в массиве первое вхождение заданного символа (функция) | |
| сравнивает два буфера (функция) | |
(C23)(C11) |
заполняет буфер некоторым символом (функция) |
| копирует один буфер в другой (функция) | |
| перемещает один буфер в другой (функция) | |
(C11) |
копирует один буфер в другой (функция) |
Разное | |
Определены в заголовочном файле
<string.h> | |
(C11)(C11) |
возвращает текстовую версию для заданного кода ошибки (функция) |
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.4 Обработка символов <ctype.h> (стр. 200-204)
- 7.8 Преобразования форматов целых типов <inttypes.h> (стр. 217-220)
- 7.22 Основные утилиты <stdlib.h> (стр. 340-360)
- 7.24 Обработка строк <string.h> (стр. 362-372)
- 7.31.2 Обработка символов <ctype.h> (стр. 455)
- 7.31.5 Преобразования форматов целых типов <inttypes.h> (стр. 455)
- 7.31.12 Основные утилиты <stdlib.h> (стр. 456)
- 7.31.13 Обработка строк <string.h> (стр. 456)
- K.3.6 Основные утилиты <stdlib.h> (стр. 604-613)
- K.3.7 Обработка строк <string.h> (стр. 614-623)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.4 Обработка символов <ctype.h> (стр. 181-185)
- 7.8 Преобразования форматов целых типов <inttypes.h> (стр. 198-201)
- 7.20 Основные утилиты <stdlib.h> (стр. 306-324)
- 7.21 Обработка строк <string.h> (стр. 325-334)
- 7.26.2 Обработка символов <ctype.h> (стр. 401)
- 7.26.4 Преобразования форматов целых типов <inttypes.h> (стр. 401)
- 7.26.10 Основные утилиты <stdlib.h> (стр. 402)
- 7.26.11 Обработка строк <string.h> (стр. 402)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.3 ОБРАБОТКА СИМВОЛОВ <ctype.h>
- 4.10 ОСНОВНЫЕ УТИЛИТЫ <stdlib.h>
- 4.11 ОБРАБОТКА СТРОК <string.h>
- 4.13.2 Обработка символов <ctype.h>
- 4.13.7 Основные утилиты <stdlib.h>
- 4.13.8 Обработка строк <string.h>
См. также
Документация C++ по
нуль-терминированным однобайтовым строкам |