Иллюстрированный самоучитель по MatLab

Операции над строками

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

  • findstr(str1,str2) – обеспечивает поиск начальных индексов более короткой строки внутри более длинной и возвращает вектор этих индексов. Индексы указывают положение первого символа более короткой строки в более длинной строке.

Пример:

>> str1='Example of the function Is the findstr function';
>> str2='the';
>> k = findstr(str1,str2)
k =
12 28
  • lower('str') – возвращает строку символов str, в которой символы верхнего регистра переводятся в нижний регистр, а все остальные символы остаются без изменений.

Пример:

>> str='Example Of The Function';
>> t=lower(str)
t =
example of the function
  • upper('str') – возвращает строку символов str, в которой все символы нижнего регистра переводятся в верхний регистр, а все остальные символы остаются без изменений.

Пример:

>> str='danger!';
>> t = upper(str)
t =
DANGER!
  • strcat(s1,s2,s3,…) – выполняет горизонтальное объединение соответствующих рядов массивов символов s1, s2, s3 и т. д., причем пробелы в конце каждого ряда отбрасываются, и возвращает объединенную строку (ряд) результирующего массива символов, пробелы добавляются заново после анализа строк в полученном массиве. Все входные массивы должны иметь одинаковое число строк (в частном случае должны быть представлены в виде одной строки символов), но если один из входных аргументов – не массив символов, а строковый массив ячеек, то любой из других входных аргументов может быть скаляром или любым массивом той же размерности и того же размера. Если входной массив состоит только из символов, то выходной массив также будет являться массивом символов. Если любой из входных массивов является строковым массивом ячеек, то функция strcat возвращает строковый массив ячеек, сформированный из объединенных соответствующих элементов массивов s1, s2, s3. при этом любой из элементов может быть скаляром и т. д.

Примеры:

>> s1{1.2}='book':
>> s1 s1 =
'Home' 'book'
>> s2{ 1.1}= 'home':
>> s2{ 1.2}= 'reading';
>> s2 s2 =
'home' 'reading'
>> t = strcat(s1.s2)
t =
'Homehome' 'book read ing'
>> s1=['wri ']
s1 =wri
>> s2=['ter']
s2 =ter
>> t = strcat(s1.s2)
t =
writer
  • strvcat(t1,t2,t3….) – выполняет вертикальное объединение строк t1, t2, t3,.. в массив символов S аналогично char(t1,t2.t3….). Пример:
>> t1=['string'];
>> t2=['concatenation']:
>> S = strvcat(t1.t2)
S =
string concatenation
  • strcmp('str1'. 'str2') – возвращает логическую единицу, если две сравниваемые строки str1 и str2 идентичны, и логический ноль в противном случае;
  • TF = strcmp(S.T) – возвращает строковый массив ячеек TF, содержащий единицы для идентичных элементов массивов S и Т и нули для всех остальных, причем если один из массивов – не массив символов, а строковый массив ячеек, то перед сравнением из сравниваемых копий рядов массива символов удаляются пробелы в конце строк. Массивы S и Т должны иметь одинаковый размер, или один из них может быть скалярной ячейкой.

Примеры:

>> str1='computer';
>> str2='computer';
>> k = strcmp(str1.str2)
k =
1
>> S{1.1}='first';
>> S{1.2}='second':
>> S S =
'first''second'
>> T{1.1}='third';
>> TF = strcmp(S.T)
TF =
0 0
>> T{1.1}='second';
>> TF - strcmp(S.T)
TF =
0 1
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.