String.h

String.h

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 *, 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

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "String.h" в других словарях:

  • String — (str[i^]ng), n. [OE. string, streng, AS. streng; akin to D. streng, G. strang, Icel. strengr, Sw. str[ a]ng, Dan. str[ae]ng; probably from the adj., E. strong (see {Strong}); or perhaps originally meaning, twisted, and akin to E. strangle.] 1. A… …   The Collaborative International Dictionary of English

  • string — [striŋ] n. [ME streng < OE, akin to Ger strang: see STRONG] 1. a) a thin line of twisted fiber used for tying, pulling, fastening, etc.; slender cord or thick thread b) a narrow strip of leather or cloth for fastening shoes, clothing, etc.;… …   English World dictionary

  • STRING — (Search Tool for the Retrieval of Interacting Genes/Proteins) ist eine Bioinformatik Datenbank, die einen umfassenden Überblick über direkte (physikalische) und indirekte (funktionelle) Zusammenhänge und Interaktionen zwischen Proteinen gibt. Sie …   Deutsch Wikipedia

  • string — ► NOUN 1) material consisting of threads twisted together to form a thin length. 2) a piece of such material. 3) a length of catgut or wire on a musical instrument, producing a note by vibration. 4) (strings) the stringed instruments in an… …   English terms dictionary

  • string — [ striŋ ] n. m. • 1977; mot angl. « ficelle » ♦ Anglic. Maillot de bain ou slip très petit, assemblé par des liens, laissant les fesses nues. ⇒ cache sexe. ● string nom masculin (anglais string, corde) Cache sexe qui laisse les fesses nues.… …   Encyclopédie Universelle

  • String — (str[i^]ng), v. t. [imp. {Strung} (str[u^]ng); p. p. {Strung} (R. {Stringed} (str[i^]ngd)); p. pr. & vb. n. {Stringing}.] 1. To furnish with strings; as, to string a violin. [1913 Webster] Has not wise nature strung the legs and feet With firmest …   The Collaborative International Dictionary of English

  • String.h — is the header in the C standard library for the C programming language which contains macro definitions, constants, and declarations of functions and types used not only for string handling but also various memory handling functions; the name is… …   Wikipedia

  • String.h — Demande de traduction string.h → …   Wikipédia en Français

  • String — (engl. string „Schnur“, „Strang“, „Saite“, „Kette“) steht für: Zeichenkette (Informatik); das fundamentale Objekt der Stringtheorie (Physik); kosmischer String, hypothetischer Raumdefekt; String (Kleidung), sehr knappe Höschenform. Die Abkürzung… …   Deutsch Wikipedia

  • String.h — Saltar a navegación, búsqueda string.h es un archivo de la Biblioteca estándar del lenguaje de programación C que contiene la definición de macros, constantes, funciones y tipos de utilidad para trabajar con cadenas de caracteres y algunas… …   Wikipedia Español


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»