C/string.h — различия между версиями

Материал из C\C++ эксперт
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
 +
'''string.h''' — заголовочный файл стандартной библиотеке языка Си, содержащий функции для работы с нуль-терминированной строками и различными функциями работы с памятью.
 +
 +
Функции объявленные в string.h широко используются, так как являясь частью стандартной библиотеки, они гарантированно работают на всех платформах, поддерживающих Си. Однако, существуют некоторые потенциальные проблемы с безопасностью, такие как переполнение буфера, что побуждает в пользу выбора более безопасных, возможно менее переносимых вариантов. Кроме этого, строковые функции работают только с набором символов ASCII или его совместимыми расширениями, такими как ISO-8859-1; многобайтовые кодировки такие как UTF-8 будут работать, с отличием, что «длина» строки будет определяться как число байтов, а не число символов Юникода, которым они соответствуют. Несовместимые с ASCII строки обычно обрабатываются кодом описанным в wchar.h.
 +
 +
Большинство функций string.h не производят никакого выделения памяти и контроля границ; эта обязанность целиком ложится на плечи программиста.
 +
 
* [[C/string.h/memchr | memchr]]
 
* [[C/string.h/memchr | memchr]]
 
* [[C/string.h/memcmp | memcmp]]
 
* [[C/string.h/memcmp | memcmp]]

Текущая версия на 21:40, 21 июня 2010

string.h — заголовочный файл стандартной библиотеке языка Си, содержащий функции для работы с нуль-терминированной строками и различными функциями работы с памятью.

Функции объявленные в string.h широко используются, так как являясь частью стандартной библиотеки, они гарантированно работают на всех платформах, поддерживающих Си. Однако, существуют некоторые потенциальные проблемы с безопасностью, такие как переполнение буфера, что побуждает в пользу выбора более безопасных, возможно менее переносимых вариантов. Кроме этого, строковые функции работают только с набором символов ASCII или его совместимыми расширениями, такими как ISO-8859-1; многобайтовые кодировки такие как UTF-8 будут работать, с отличием, что «длина» строки будет определяться как число байтов, а не число символов Юникода, которым они соответствуют. Несовместимые с ASCII строки обычно обрабатываются кодом описанным в wchar.h.

Большинство функций string.h не производят никакого выделения памяти и контроля границ; эта обязанность целиком ложится на плечи программиста.