6.3.4 Массивы ячеек строк
Одно из распространённых применений массивов ячеек — хранение нескольких строк в одной переменной. Также можно хранить несколько строк в матрице символов, при этом каждая строка будет представлять строку. Однако это создаёт проблему, так как все строки должны иметь одинаковую длину. Поэтому рекомендуется использовать массивы ячеек для хранения нескольких строк. В случаях, когда требуется представление матрицы символов для операции, существуют несколько функций, которые преобразуют массив ячеек строк в матрицу символов и обратно. char и strvcat преобразуют массивы ячеек в матрицу символов (см. Конкатенация строк), в то время как функция cellstr преобразует матрицу символов в массив ячеек строк:
a = ["hello"; "world"];
c = cellstr (a)
⇒ c =
{
[1,1] = hello
[2,1] = world
} - cstr = cellstr (strmat)
-
Создать новый объект массива ячеек из элементов массива строк strmat.
Каждая строка strmat становится элементом cstr. Любые хвостовые пробелы в строке удаляются перед преобразованием.
Для преобразования обратно из cellstr в матрицу символов используйте
char.
Ещё одним преимуществом использования массивов ячеек для хранения нескольких строк является то, что большинство функций для работы со строками, включённых в Octave, поддерживают это представление. Например, можно сравнить одну строку со многими другими, используя функцию strcmp. Если одним из аргументов этой функции является строка, а другим — массив ячеек строк, каждый элемент массива ячеек будет сравниваться с аргументом-строкой:
c = {"hello", "world"};
strcmp ("hello", c)
⇒ ans =
1 0 Следующие функции для работы со строками поддерживают массивы ячеек строк: char, strvcat, strcat (см. Конкатенация строк), strcmp, strncmp, strcmpi, strncmpi (см. Сравнение строк), str2double, deblank, strtrim, strtrunc, strfind, strmatch, , regexp, regexpi (см. Обработка строк) и str2double (см. Преобразования строк).
Функция iscellstr может использоваться для проверки, является ли объект массивом ячеек строк.
- iscellstr (cell)
-
Возвращает true, если каждый элемент массива ячеек cell является строкой символов.
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/Cell-Arrays-of-Strings.html