Еще один способ формирования символьных строк предоставляет операция конкатенации. Она применяется для слияния содержимого заданных строк символов в одну строку. Эту конструктивную операцию обработки строк символов реализуют функции strcat и strncat. Спецификации форматов их вызова имеют вид:
char* strcat (char* dest, const char* src);
char* strncat(char* dest, const char* src, unsigned num);
Обе функции выполняют конкатенацию двух символьных строк, добавляя копию всего или части содержимого исходной строки, адресуемой указателем src, в конец строки, назначенной указателем dest. При слиянии строк, символ с нулевым кодом '\0', который завершает строку, назначенную указателем dest, перекрывается начальным символом исходной строки по адресу src. В конец полученной конкатенации автоматически добавляется нулевой код '\0', образуя строку символов, которая доступна по адресу, назначенному указателем dest. Содержимое исходной строки (по адресу src) остается неизменным. Различие обеих функций конкатенации состоит только в том, что функция strcat рассматривает для слияния всю исходную строку, а функция strncat только ее начальную часть, которая содержит не больше символов, чем задано значением параметра num. Если значение параметра num превышает длину исходной строки, то действие функции strncat будет эквивалентно вызову функции strcat. Следует отметить, что корректного выполнения конкатенации необходимо всегда иметь по адресу, назначенному указателем dest, объем памяти, который достаточен для размещения обеих сливаемых строк. При успешном завершении обе функции возвращают адрес полученной конкатенации, то есть значение указателя dest.
При разработке прикладных программ функции strcat и strncat применяют, когда нужно склеить несколько строк в одну строку. Следующий фрагмент исходного кода демонстрирует как использовать функцию strcat, чтобы собрать предложение из отдельных слов, которые заданы в форме строковых констант.
unsigned char sen[64];       /* Массив для символов предложения */
strcpy(sen, "Язык");
strcat(sen, " ");
strcat(sen, "программирования");
strcat(sen, " ");
strcat(sen, "Си.");
В этом примере массив символов sen предназначен для формирования в нем текста предложения. Первоначальный вызов функции strcpy инициализирует массив sen символами строковой константы "Язык", образуя первое слово формируемого предложения. Эта инициализация превращает исходный пустой массив в символьную строку. Последующие вызовы функции strcat добавляют к ней строки остальных слов и разделяющие их пробелы, чтобы получить в результате символьную строку, которая содержит предложение:
"Язык программирования Си."
Как известно это название монографии американских авторов Б. Кернигана и Д. Ритчи, которая была опубликована в 1978 году и с тех пор неофициально считается стандартом дефакто языка программирования C.