Справочник по C/C++
Строковые и символьные функции

Библиотека функций языков С и C++ включает богатый набор функций обработки строк и символов. Строковые функции работают с символьными массивами, завершающимися нулевыми символами. В языке С для использования строковых функций необходимо включить в начало модуля программы заголовочный файл , а для символьных — заголовочный файл . В языке C++ для работы со строковыми и символьными функциями используются заголовки и соответственно. В этой главе для простоты изложения используются имена С-заголовков.

Поскольку в языках С и C++ при выполнении операций с массивами не предусмотрен автоматический контроль нарушения их границ, вся ответственность за переполнение массивов ложится на плечи программиста. Пренебрежение этими тонкостями может привести программу к аварийному отказу.

В языках С и C++ печатаемыми являются символы, отображаемые на терминале. В ASCII-средах они расположены между пробелом(0x20) и тильдой(OxFE). Управляющие символы имеют значения, лежащие в диапазоне между нулем и Ox1F; к ним также относится символ DEL(Ox7F).

Исторически сложилось так, что аргументами символьных функций являются целые значения, из которых используется только младший байт. Символьные функции автоматически преобразуют свои аргументы в тип unsigned char. Безусловно, вы вольны вызывать эти функции с символьными аргументами, поскольку символы автоматически возводятся в ранг целых в момент вызова функции.

В заголовке определен тип size_t, который является результатом применения оператора sizeof и представляет собой разновидность целого без знака.

В версии С99 к некоторым параметрам нескольких функций, первоначально определенных в версии С89, добавлен квалификатор restrict. При рассмотрении каждой такой функции будет приведен ее прототип, используемый в среде С89(а также в среде C++), а параметры с атрибутом restrict будут отмечены в описании этой функции.

Список функций

Проверка на принадлежность

isalnum — Проверка на принадлежность символа к алфавитно-цифровым
isalpha — Проверка на принадлежность символа к буквам
isblank — Проверка пустого символа
iscntrl — Проверка на принадлежность символа к управляющим
isdigit — Проверка на принадлежность символа к цифровым
isgraph — Проверка на принадлежность символа к печатным но не к пробелу
islower — Проверка на принадлежность символа к строчным
isprint — Проверка на принадлежность символа к печатным
ispunct — Проверка на принадлежность символа к знакам пунктуации
isspace — Проверка на принадлежность символа к пробельным
isupper — Проверка на принадлежность символа к прописным
isxdigit — Проверка на принадлежность символа к шестнадцатеричным

Работа с символьными массивами

memchr — Просматривает массив чтобы отыскать первое вхождение символа
memcmp — Сравнивает определённое количество символов в двух массивах
memcpy — Копирует символы из одного массива в другой
memmove — Копирует символы из одного массива в другой с учётом перекрытия массивов
memset — Заполняет определённое количество символов массива заданным

Манипуляции над строками

strcat — Присоединяет копию одной строки к заданной
strchr — Возвращает указатель на первое вхождение младшего байта заданного параметра
strcmp — Сравнивает в лексикографическом порядке две строки
strcoll — Сравнивает одну строку с другой в соответствии с параметром setlocale
strcpy — Копирует содержимое одной строки в другую
strcspn — Возвращает строку в которой отсутствуют заданные символы
strerror — Возвращает указатель на строку содержащую системное сообщение об ошибке
strlen — Возвращает длину строки с завершающим нулевым символом
strncat — Присоединяет определённое количество символов одной строки к другой
strncmp — Лексикографически сравнивает две строки
strncpy — Копирует определённое количество символов в символьный массив
strpbrk — Возвращает указатель на первый символ в строке который совпадает с заданными
strrchr — Возвращает указатель на последнее вхождение младшего байта заданного параметра в строке
strspn — Возвращает индекс первого символа в заданной строке, который не совпадает с любым из символов в другой строке
strstr — Возвращает указатель на первое вхождение одной строки в другую
strtok — Возвращает указатель на следующую лексему в строке
strxfrm — Преобразует определённое количество символов заданной строки чтобы ее можно было использовать функцией strcmp()

Другие функции

tolower — Переводит символ в нижний регистр
toupper — Переводит символ в верхний регистр