Строка представляет собой конечную последовательность символов, обычно используемых для текста, хотя иногда и для произвольных данных.

Строка представляет собой конечную последовательность символов, обычно используемых для текста, хотя иногда и для произвольных данных.

Большинство языков программирования предоставляют специальный строковый тип данных или более общие средства и соглашения для обработки строк; а также предоставление способа обозначения строковых литералов. На некоторых языках программирования все это строка, например, в Tcl. В основном предоставляется специальная библиотека поддержки различной сложности.

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

Ниже перечислены некоторые избранные представители:

  • Строки с нулевым завершением (а) C-строки, ASCIZ, sz) представляют собой массивы ненулевых элементов, которые заканчиваются специальным, нулевым элементом (варианты с использованием другого завершающего символа в основном ограничены старыми системами, например, DOS поддерживается $).
  • Counted String (aka Pascal Strings) - это массивы произвольных байтов с префиксом указателя длины. В настоящее время размер подсчитанных строк ограничен доступным адресным пространством, хотя довольно часто используется один байт для длины (подразумевая максимальную длину 255).
  • Веревки, которые представляют собой списки сегментов (например, длина + указатели в модифицируемые и немодифицируемые буферы), для эффективной вставки и удаления.

Многие (особенно функциональные) языки поддерживают строки как список базовых символов.

Для поддержки Unicode специальная строка типа строк становится общей, так как символы Unicode могут иметь произвольную длину, даже в UTF-32. Это позволяет эффективно индексировать символы, нажимая сложность набора символов в тип строки.

В большинстве языков строки можно перебирать, аналогично спискам/массивам. На некоторых языках высокого уровня (в которых строки представляют собой тип данных для себя), строки неизменяемы, поэтому строковые операции создают новые строки.

Для текстовых строк используется много кодировок, хотя современное использование сходится в Unicode, используя UTF-8 (некоторые ранние последователи Unicode вместо этого перешли форму UCS2 в UTF-16 в формате персистентности).

Программное обеспечение Windows часто принимает соглашение WinAPI по использованию UTF-16 внутри, преобразование для внешних данных и персистентность вместо системных вызовов.

String Literal является появлением строковой фразы в исходном коде, обычно инкапсулированной в выделенные разделители (например, в C/C++ и Java строковый литерал окружен двойными кавычками - "Это строковый литерал").

Полезные ссылки: