Описание тега string
Строка - это конечная последовательность символов, обычно используемая для текста, но иногда и для произвольных данных.
Большинство языков программирования предоставляют специальный строковый тип данных или более общие средства и соглашения для обработки строк; а также возможность обозначать строковые литералы. В некоторых языках программирования все является строкой, например в Tcl. Также в большинстве случаев предоставляется специальная библиотека поддержки различной сложности.
Строковые представления широко различаются по функциям, которые они предлагают; правильный тип строки может легко уменьшить порядок алгоритмов, в то время как неправильный тип может вообще не вместить ваши строковые данные.
Ниже приведены некоторые тщательно отобранные представители:
- Строки с нулевым завершением (также известные как C-строки, ASCIZ, sz) представляют собой массивы ненулевых элементов, заканчивающихся специальным нулевым элементом (варианты, использующие другой завершающий символ, в основном ограничены старыми системами, например, поддерживаемыми DOS
$
). - Подсчитываемая строка (также известная как строки Паскаля) - это массивы произвольных байтов, которым предшествует индикатор длины. В настоящее время размер подсчитываемых строк ограничен доступным адресным пространством, хотя было довольно распространено использовать один байт для длины (подразумевая максимальную длину 255).
- Связки, которые представляют собой списки сегментов (например, длина + указатели на модифицируемые и немодифицируемые буферы), для эффективной вставки и удаления.
Многие (особенно функциональные) языки поддерживают строки как список базовых символов.
Для поддержки Unicode обычным явлением становится специальная строка типа strings, поскольку символы Unicode могут иметь произвольную длину, даже в UTF-32. Это обеспечивает эффективную индексацию символов, перенося сложность набора символов в строковый тип.
В большинстве языков строки можно перебирать, как в списках / массивах. В некоторых языках высокого уровня (в которых строки сами по себе являются типом данных) строки неизменяемы, поэтому строковые операции создают новые строки.
Для текстовых строк используется много кодировок, хотя современное использование сводится к Unicode с использованием UTF-8 (некоторые ранние последователи Unicode вместо этого перешли с UCS2 на UTF-16 в качестве формата сохранения).
Программное обеспечение Windows часто принимает соглашение WinAPI о внутреннем использовании UTF-16 с преобразованием для внешних данных и сохранения вместо системных вызовов.
А String Literal
является вхождением строковой фразы в исходный код, обычно заключенной в специальные разделители (например, в C/C++ и Java строковый литерал заключен в двойные кавычки - "Это строковый литерал").