- string.h
-
Стандартная библиотека
языка программирования Сstring.h — заголовочный файл стандартной библиотеки языка Си, содержащий функции для работы с нуль-терминированными строками и различными функциями работы с памятью.
Функции, объявленные в
string.h, широко используются, так как являясь частью стандартной библиотеки, они гарантированно работают на всех платформах, поддерживающих Си. Кроме этого, строковые функции работают только с набором символов ASCII или его совместимыми расширениями, такими как ISO-8859-1; многобайтовые кодировки такие как UTF-8 будут работать, с отличием, что «длина» строки будет определяться как число байтов, а не число символов Юникода, которым они соответствуют. Несовместимые с ASCII строки обычно обрабатываются кодом описанным вwchar.h.Большинство функций
string.hне производят никакого выделения памяти и контроля границ; эта обязанность целиком ложится на плечи программиста.Содержание
Константы и типы
Имя Примечания NULLрасширяется в null pointer; то есть, значение, которое гарантированно не является валидным адресом объекта в памяти. size_tбеззнаковое целое, имеющее тот же тип, что и результат оператора sizeof.Функции
Имя Примечания void *memcpy(void *dest, const void *src, size_t n);копирует n байт из области памяти src в dest, которые не должны пересекаться, в противном случае результат неопределен (возможно как правильное копирование, так и нет) void *memmove(void *dest, const void *src, size_t n);копирует n байт из области памяти src в dest, которые в отличие от memcpyмогут перекрыватьсяvoid *memchr(const void *s, char c, size_t n);возвращает указатель на первое вхождение c в первых n байтах s, или NULL, если не найдено int memcmp(const void *s1, const void *s2, size_t n);сравнивает первые n символов в областях памяти void *memset(void *, int z, size_t);заполняет область памяти одним байтом z char *strcat(char *dest, const char *src);дописывает строку src в конец dest char *strncat(char *dest, const char *, size_t);дописывает не более n начальных символов строки src (или всю src, если ее длина меньше) в конец dest char *strchr(const char *, int);ищет символ в строке, начиная с головы и возвращает его адрес, или NULL если не найден char *strrchr(const char *, int);ищет символ в строке, начиная с хвоста и возвращает его адрес, или NULL если не найден int strcmp(const char *, const char *);лексикографическое сравнение строк int strncmp(const char *, const char *, size_t);лексикографическое сравнение первых n байтов строк int strcoll(const char *, const char *);лексикографическое сравнение строк с учетом локали collating order char *strcpy(char *toHere, const char *fromHere);копирует строку из одного места в другое char *strncpy(char *toHere, const char *fromHere, size_t n);копирует до n байт строки из одного места в другое char *strerror(int);возвращает строковое представление сообщения об ошибке errno (не потоко-безопасная) size_t strlen(const char *);возвращает длину строки size_t strspn(const char *s, const char *accept);определяет максимальную длину начальной подстроки, состоящей исключительно из байтов, перечисленных в accept size_t strcspn(const char *s, const char *reject);определяет максимальную длину начальной подстроки, состоящей исключительно из байтов, не перечисленных в reject char *strpbrk(const char *s, const char *accept);находит первое вхождение любого символа, перечисленного в accept char *strstr(const char *haystack, const char *needle);находит первое вхождение строки needle в haystack char *strtok(char *, const char *);преобразует строку в последовательность токенов. Не потоко-безопасная, нереентрантная. size_t strxfrm(char *dest, const char *src, size_t n);создает оттранслированную копию строки, такую, что дословное сравнение ее (strcmp) будет эквивалентно сравнению с коллатором. Расширения к ISO C
Имя Примечания Определена в char *strdup(const char *);создает копию строки и возвращает указатель на нее POSIX; первоначально расширение в BSD errno_t strcpy_s(char *restrict s1, rsize_t s1max, const char *restrict s2);вариант strcpyс контролем границISO/IEC WDTR 24731 void *mempcpy(void *dest, const void *src, size_t n);вариант memcpyс возвратом байта, следующего за последним записаннымGNU void *memccpy(void *dest, const void *src, int c, size_t n);копирует до n байт из одной области памяти в другую (не должны пересекаться), останавливаясь при встрече символа c UNIX 98? int *strerror_r(int, char *, size_t);возвращает строкое представление кода ошибки errno (потоко-безопасная; небольшая разница в семантике между GNU и XSI/POSIX) GNU, POSIX size_t strlcpy(char *dest, const char *src, size_t n);вариант strcpyс контролем границпервоначально OpenBSD, теперь также FreeBSD, Solaris, Mac OS X char *strtok_r(char *, const char *, char **);потоко-безопасная реентерабельная версия strtok POSIX char *strsignal(int sig);по аналогии с strerror, возвращает строковое представление сигналаsig(не потоко-безопасная)BSDs, Solaris, Linux Ссылки
string.h— основные определения, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)
Категории:- Стандартные библиотечные заголовки языка Си
- String.h
Wikimedia Foundation. 2010.