Підрядок

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

В інформатиці підрядок — непорожня зв'язна частина рядка.

Зміст

Формальне визначання [ред.]

Нехай 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 == NULL)
{
  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);

Операції з підрядком [ред.]

Окрім простої задачі виділення підрядка з рядка за двома індексами існує і складніша задача пошуку індексів, що вказують на заданий підрядок.

Див. також [ред.]