Правильный способ использования функции strcpy ()? - PullRequest
0 голосов
/ 12 июня 2018

Как правильно использовать функцию strcpy ()?Я сделал это двумя способами, и оба раза программа работала просто отлично, поэтому мне было интересно, как «правильнее» это использовать.Я хочу скопировать строку s2 в s1.

Это:

s1=strcpy(s1, s2);  

или просто написать:

strcpy(s1, s2);

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Второй способ верен.Возвращаемое значение strcpy() всегда совпадает с его первым аргументом, поэтому ваша первая версия эквивалентна:

strcpy(s1, s2);
s1 = s1;

Это второе назначение, очевидно, бессмысленно.И было бы неверно, если бы s1 был массивом, а не переменной-указателем, поскольку вы не можете назначать массивы.

0 голосов
/ 12 июня 2018

Сигнатура функции:

char* strcpy(char* destination, const char* source);

Возвращаемое значение destination.Если вы хотите использовать это значение, вы можете, но в противном случае вы можете игнорировать его.

Это для случая, когда вы хотите return strcpy(x,y) без необходимости явного return x после факта.

Обратите внимание, что такие функции, как strcpy, по своей природе опасны, поскольку не проверяют длину буфера должным образом.Вам, вероятно, следует использовать strcpy_s или что-то подобное с явным полем длины, чтобы не создавать ошибок переполнения буфера.

...