Подстрока
|
В информатике подстрока — это непустая связная часть строки.
Формальное определение
Пусть <math>L=c_0\dots c_{n-1}</math> — строка длины <math>n</math>.
Любая строка <math>S=c_i\dots c_j</math>, где <math>0\le i\le j\le n-1</math>, является подстрокой <math>L</math> длины <math>j-i+1</math>.
- Если <math>i=0</math>, то <math>S</math> называется префиксом <math>L</math> длины <math>j+1</math>.
- Если <math>j=n-1</math>, то <math>S</math> — суффикс <math>L</math> длины <math>j-i+1</math>.
Пример
С точки зрения информатики строки «кипед», «Вики», «дия» являются подстроками строки «Википедия»; при этом «Вики» — префиксом, а «дия» — суффиксом.
Википедия ||||||||| ||кипед|| |||| ||| Вики ||| дия
Получение подстроки
Если line — исходная строка, begin — индекс первого символа подстроки, end — индекс последнего символа подстроки, то подстрока subline вычисляется следующим образом:
В языке C
char* subline = ( char* )malloc( end - begin + 2 );
memcpy( subline, line + begin, end - begin + 1 );
subline[ end - begin + 1 ] = '\0';
В языке Python
subline = line[begin:end + 1]
В языке python подстрока является слайсом (срезом) (англ. slice).
В языке Perl
my $subline = substr $line, $begin, $end - $begin + 1;
В языке PHP
$subline = substr($line, $begin, $end - $begin + 1);
В языке Pascal
subline := Copy(line, begin, end - begin + 1);
В языке Ruby
substr = line[start..stop]
Операции с подстрокой
Помимо простой задачи выделения подстроки из строки по двум индексам существует и более сложная задача поиска индексов, указывающих на заданную подстроку в строке (поиск вхождения подстроки в строку).
См. также
Это заготовка статьи о компьютерах. Вы можете помочь проекту, дополнив её. Это примечание по возможности следует заменить более точным. |