Нуль-терминированные однобайтовые строки
Материал из 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 | GHIJKLMNOP QRSTUVWXYZ | 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 | ghijklmnop qrstuvwxyz | 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++ по нуль -терминированным однобайтовым строкам |