Подстрока
|
В информатике подстрока — это непустая связная часть строки.
[править] Формальное определение
Пусть
— строка с длиной
.
Любая строка
, где
, является подстрокой
с длиной
.
Если
, то
называется префиксом
с длиной
.
Если
, то
— суффикс
с длиной
.
[править] Пример
С точки зрения информатики строки «кипед», «Вики», «дия» являются подстроками строки «Википедия»; при этом «Вики» — префиксом, а «дия» — суффиксом.
Википедия
|||||||||
||кипед||
|||| |||
Вики |||
дия
[править] Получение подстроки
Если line — исходная строка, begin — индекс первого символа подстроки, end — индекс последнего символа подстроки, то подстрока subline вычисляется следующим образом:
[править] В языке C
char* subline = ( char* )malloc( end - begin + 2 );
if ( !subline )
{
fprintf( stderr, "ERROR: malloc failed!" );
exit( 1 );
}
memcpy( subline, line + begin, end - begin + 1 );
subline[ end - begin + 1 ] = '\0';
[править] В языке Python
subline=line[begin:end+1]
В языке python подстрока является слайсом (срезом) (англ. slice).
[править] В языке Perl
$subline = substr($line, $begin, $end-$begin);
[править] В языке Pascal
SubStr := Copy(SourceStr, StartCharIndex, SubStrLength);
[править] В языке Ruby
substr = line[start..stop]
[править] Операции с подстрокой
Помимо простой задачи выделения подстроки из строки по двум индексам существует и более сложная задача поиска индексов, указывающих на заданную подстроку в строке (поиск вхождения подстроки в строку).
[править] См. также
| Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её. Это примечание по возможности следует заменить более точным. |