Подстрока

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Содержание

В информатике подстрока — это непустая связная часть строки.

[править] Формальное определение

Пусть L=c_0\dots c_{n-1} — строка с длиной n.
Любая строка S=c_i\dots c_j, где 0\le i\le j\le n-1, является подстрокой L с длиной j-i+1.
Если i=0, то S называется префиксом L с длиной j+1.
Если j=n-1, то S — суффикс L с длиной j-i+1.

[править] Пример

С точки зрения информатики строки «кипед», «Вики», «дия» являются подстроками строки «Википедия»; при этом «Вики» — префиксом, а «дия» — суффиксом.

Википедия
|||||||||
||кипед||
||||  |||
Вики  |||
      дия

[править] Получение подстроки

Если 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]

[править] Операции с подстрокой

Помимо простой задачи выделения подстроки из строки по двум индексам существует и более сложная задача поиска индексов, указывающих на заданную подстроку в строке (поиск вхождения подстроки в строку).

[править] См. также


Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках