Конкатенація (лат. concatēnāre, об'єднання, з'єднання) — в загальному сенсі - функція з'єднання двох сутностей або результат такої операції[1][2].
Конкатенація в програмуванні - послідовне з'єднання значень декількох змінних та повернення результуючого значення. Аргументами такої функції можуть бути такі сутності, як рядки або масиви, результатом - ланцюжок цих сутностей.
Приклади:
конкатенація слів «мікро» і «світ» дасть слово «мікросвіт».
конкатенація рядків «34» та «84» дають результат «3484».
Конкатенація — бінарна операція, визначена на словах даного алфавіту. Якщо і слова в алфавіті , то конкатенацією слів і , яку позначимо в цій статті як , буде слово в тому ж алфавіті , що визначається рівністю
Операція конкатенації некомутативна. Дійсно, , але . Від перестановки операндів змінюється результат операції, що й означає її некомутативність.
Порожнє слово, , є нейтральним елементом (одиницею) операції конкатенації. Тобто, якщо - порожнє слово, то для будь-якого слова виконана рівність:
.
Множина всіх слів у алфавіті утворює моноїд (так звана «вільна напівгрупа»).
Множина всіх непустих слів у алфавіті утворює напівгрупу.
Довжина конкатенації слів дорівнює сумі довжин операндів:
.
Піднесення до степеня
Операція конкатенації слів, подібно операції множення чисел, породжує операцію піднесення до степеня. Нехай деяке слово в алфавіті , а ціле невід'ємне число. Тоді -м ступенем слова , що позначається , буде слово в тому ж алфавіті , визначене рівністю:
У випадку , степінь за визначенням буде рівною порожньому слову, .
В інформатиці
Операція конкатенації визначається для типів даних, які мають структуру послідовності (список, чергу, масив і ряд інших). У загальному випадку, результатом конкатенації двох об'єктів і є об'єкт , отриманий почерговим додаванням всіх елементів об'єкта , починаючи з початку, в кінець об'єкта .
З міркувань зручності й ефективності розрізняють дві форми операції конкатенації:
Модифікуюча конкатенація. Результат операції формується в лівому операнді.
Немодифікуюча конкатенація. Результатом є новий об'єкт, операнди залишаються незмінними.[3]
Алгоритм
Алгоритм конкатенації на прикладі двох масивів наведений нижче[4].
Дано:
Масив з розміром .
Масив з розміром .
Масив з розміром , що є результатом конкатенації масивів та .
Індекс масиву .
Суть алгоритму:
1. Виконати копіювання масиву в масив для :
2. Виконати копіювання масиву в масив для :
3. END
В мовах програмування
C
В мові програмування C функція конкатенації рядків strcat міститься в бібліотеці <string.h>[5][6].
#include<stdio.h>#include<string.h>#define N 50voidmain(){// Декларація змінної examplecharexample[N];// Копіювати рядок в змінну examplestrcpy(example,"Кон");// Виконати конкатенацію значення змінної examplestrcat(example,"катенація");// Вивести на екран змінну exampleprintf("%s\n",example);}