В информатике строка - это последовательность символов .Последовательность имеет некоторую длину - в ней есть некоторое количество символов.Чтобы работать со строкой, обычно нужно знать длину строки.
Длина может указываться различными способами.Один из способов - указать конец последовательности с помощью значения Sentinel , которое является просто выбранным значением, которое не используется в последовательности.В символьных строках обычно используется ноль в качестве часового: строка продолжается от начала до тех пор, пока не будет найден нулевой символ.При использовании стража значение стража не может отображаться внутри строки, поскольку оно отмечает конец.
Другой способ указать длину - сохранить ее отдельно от строки.Например, длина передается подпрограмме C memcmp
в качестве отдельного параметра.Это позволяет memcmp
сравнивать произвольные последовательности байтов в памяти, включая последовательности, которые содержат нулевые байты.
Иногда длина рассматривается как часть структуры данных для строки.Это может быть первый байт или первые несколько байтов строки.Таким образом, программное обеспечение, использующее строку, получит длину, прочитав первый байт, а байты после этого будут содержать символы строки.
Другой метод, связанный с методом sentinel, заключается в использовании разделителей.Например, мы обычно пишем такие строки, как "abc"
, в исходном коде, тексте и в командах оболочки.Кавычки являются разделителями, которые отмечают начало и конец строк.Различные методы используются, чтобы позволить самим разделителям быть символами в строках, например, «заключать в кавычки» разделители с другими специальными символами, как в: "This is a quote mark: \"."
.
Таким образом, концепция строки, котораяне имеет нулевого конца, является широким и открытым: любой метод указания длины строки, кроме пометки конца нулевым символом, является строкой, не заканчивающейся нулевым символом.