Матричная лаборатория MatLab

         

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

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

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

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

» strb'Example of the function Is the findstr function';

» str2='the';

» k = findstr(strl,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(sl,s2,s3,...) — выполняет горизонтальное объединение соответствующих рядов массивов символов s1, s2, s3 и т. д., причем пробелы в конце каждого ряда отбрасываются, и возвращает объединенную строку (ряд) результирующего массива символов, пробелы добавляются заново после анализа строк в полученном массиве. Все входные массивы должны иметь одинаковое число строк (в частном случае должны быть представлены в виде одной строки символов), но если один из входных аргументов — не массив символов, а строковый массив ячеек, то любой из других входных аргументов может быть скаляром или любым массивом той же размерности и того же размера. Если входной массив состоит только из символов, то выходной массив также будет являться массивом символов. Если любой из входных массивов является строковым массивом ячеек, то функция strcat возвращает строковый массив ячеек, сформированный из объединенных соответствующих элементов массивов si, s2, s3. при этом любой из элементов может быть скаляром и т. д.
Примеры:

» sl{1.2}='book'

» sl sl =

'Home' 'book' 

» s2{ 1.1}= 'home '

» s2{ 1,2}= 'reading'; 

» s2 s2 =

'home' 'reading' 

» t = strcat(sl.s2)

t =

'Homehome' 'book read ing' 

» sl=['wri '] 

s1 =wri

» s2=['ter'] 

s2 =ter

» t = strcat(sl.s2)

 t = 

writer

  • strvcat(t1,t2,t3....) — выполняет вертикальное объединение строк tl, t2, t3,.. в массив символов S аналогично char(tl,t2.t3....). Пример:
» t1=['string'];

» t2=['concatenation']:

» S = strvcat(tl.t2)

S =

string concatenation

  • strcmp( 'str1' . 'str2') — возвращает логическую единицу, если две сравниваемые строки str1 и str2 идентичны, и логический ноль в противном случае;
  • TF = strcmp(S.T) — возвращает строковый массив ячеек TF, содержащий единицы для идентичных элементов массивов S и Т и нули для всех остальных, причем если один из массивов — не массив символов, а строковый массив ячеек, то перед сравнением из сравниваемых копий рядов массива символов удаляются пробелы в конце строк. Массивы S и Т должны иметь одинаковый размер, или один из них может быть скалярной ячейкой.
Примеры:

» strl='computer'; 

» str2='computer'; 

» k = strcmp(strl.str2) 

k =

1

» S{l,l}='first'; 

» S{1,2}='second '

» S S =

'first''second' 

» T{l.l}='third'; 

» TF = strcmp(S.T) 

TF =

0 0

» T{1.1}='second';

» TF - strcmp(S.T) 

TF =

0 1

  • strncmp( 'strT , 'str2' ,n) — возвращает логическую единицу, если две сравниваемые строки strl и str2 содержат n первых идентичных символов, и логический ноль в противном случае. Аргументы strl и str2 могут быть также строковыми массивами ячеек.
  • TF = strncmp(S,T,n) — возвращает строковый массив ячеек TF, содержащий единицы для идентичных (до n символов) элементов массивов S и Т и нули для всех остальных.
Примеры:

» strl='computer'

strl =

computer

» strl='computer for me'

strl =

computer for me

» k = strncmp(strl.str2,3)

k =

» k = strncmp(strl,str2.12)

L =

  • strmatch( 'str' ,STRS, 'exact') — возвращает только индексы строк символов массива STRS, точно совпадающих со строкой символов str;
  • strjust(S) — возвращает выровненный вправо массив символов (т. е. перемещает пробелы в конце рядов массива символов, если они есть, в начало тех же рядов) [ Функция strjusttS, 'left') возвращает массив символов, где все строки выровнены влево, a strjusttS. 'center') — где все строки выровнены по центру.— Примеч.ред. ];
  • strmatch( 'str' ,STRS) — просматривает массив символов или строковый массив ячеек STRS по строкам, находит строки символов, начинающиеся с строки str, и возвращает соответствующие индексы строк;
Пример:

» STRS{1.1}='character':

» STRS{1.2}='array';

» STRS{2.1}='character array':

» STRS{2.2}='string':

» STRS

STRS =

'character' 'array'

'character array' 'string' 

» i = strmatchCcharac'.STRS)

 i =

1

2

»i = strmatch('character'.STRS.'exact') 

i =

1

  • strrep(strl,str2,str3) — заменяет все подстроки str2, найденные внутри строки символов str1 на строку str3;
  • strrep(strl,str2,str3) — возвращает строковый массив ячеек, полученный в результате выполнения функции strrep над соответствующими рядами входных массивов символов или ячеек, если один из аргументов strl, str2 или str3 — строковый массив ячеек. В этом случае любой из аргументов может быть также скалярной ячейкой.
Пример:

» strl='This is a good example for me.':

» str2='good';

» str3='best';

» str = strrep(strl.str2.str3)

str =

This is a best example for me.

  • strtokCstr' .delimiter) — возвращает часть текстовой строки str, ограниченную с ее конца разделителем del i miter. Символы-разделители в начале строки игнорируются. Вектор delimiter содержит возможные символы-разделители;
  • strtokCstr') — использует символ-разделитель по умолчанию («белое пространство»). Реальными символами-разделителями при этом являются символ табуляции (ASCII-код 9), символ возврата каретки (ASCII-код 13) и пробел (ASCII-код 32);
  • [token,rem]=strtok(...) — возвращает остаток rem исходной строки.
Примеры:

» str='This is a good example for me.': 

» token = strtok(str) 

token =

This

» token = strtok(str.'f') 

token =

This is a good example 

» [token,rem] = strtok(str) 

token = 

This 

rem =

is a good example for me.

 

Содержание раздела