strcat () против strncat () в C ++
strcat ()
Функция strcat () добавит копию исходной строки в конец целевой строки. Функция strcat () принимает два аргумента:
1) dest
2) src (источник)
Он добавит копию исходной строки в строку назначения. Завершающий символ в конце dest заменяется первым символом src.
Возвращаемое значение: функция strcat () возвращает dest, указатель на целевую строку.
// CPP program to demonstrate // strcat #include <cstring> #include <iostream> using namespace std; int main() { char dest[50] = "This is an" ; char src[50] = " example" ; strcat (dest, src); cout << dest ; return 0; } |
Выход
Это пример
strncat ()
Функция strncat () в C ++ добавляет заданное количество символов из одной строки в конец другой строки. Функция strncat () принимает эти три аргумента:
1) Dest
2) Src
3) Считать
Это добавит заданное количество символов из строки src в конец строки dest. Завершающий символ в конце строки dest будет заменен первым символом строки src.
Возвращаемое значение: функция strncat () возвращает dest, указатель на целевую строку.
// CPP program to demonstrate // strncat #include <cstring> #include <iostream> using namespace std; int main() { char dest[25] = "This is an example" ; char src[50] = " to show working of strncat() this is not added" ; strncat (dest, src, 29); cout << dest ; return 0; } |
Выход
Это пример, демонстрирующий работу strncat ()
Чем strncat () отличается от strcat ()?
Многие программисты рекомендуют, чтобы strncat () был безопасен по сравнению с strcat (), потому что strcat () не проверяет размер скопированных данных и копирует, пока не дойдет до нулевого терминатора, это может вызвать буфер переполнение, в то время как strncat () проверяет размер скопированных данных и копирует только n байтов.
// C,C++ program demonstrate difference bewteen // strncat() and strcat() #include <stdio.h> #include <string.h> int main() { // Take any two strings char src[50] = "forgeeks" ; char dest1[50] = "geeks" ; char dest2[50] = "geeks" ; printf ( "Before strcat() function execution, " ); printf ( "destination string : %s
" , dest1); // Appends the entire string of src to dest1 strcat (dest1, src); // Prints the string printf ( "After strcat() function execution, " ); printf ( "destination string : %s
" , dest1); printf ( "Before strncat() function execution, " ); printf ( "destination string : %s
" , dest2); // Appends 3 characters from src to dest2 strncat (dest2, src, 3); // Prints the string printf ( "After strncat() function execution, " ); printf ( "destination string : %s
" , dest2); return 0; } |
Выход:
Перед выполнением функции strcat () строка назначения: гики После выполнения функции strcat () строка назначения: geeksforgeeks Перед выполнением функции strncat () строка назначения: geeks После выполнения функции strncat () строка назначения: geeksfor
Эта статья предоставлена Pranav . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.