Объявление функции должно выглядеть следующим образом:
char * functionstrcpy( char *str1, const char *str2 );
Поскольку вы уже используете стандартную C функцию strlen
, тогда почему бы не использовать другую строковую функцию strcpy
? В этом случае функция может быть просто оболочкой для функции strcpy
без каких-либо дополнительных функций.
char * functionstrcpy( char *str1, const char *str2 )
{
return strcpy( str1, str2 );
}
Если вы хотите написать функцию самостоятельно, не используя стандартную C функцию strcpy
, тогда его определение может выглядеть так:
char * functionstrcpy( char *str1, const char *str2 )
{
for ( char *p = str1; ( *p++ = *str2++ ); );
return str1;
}
Вы можете использовать возвращенный указатель при вызове printf
как
printf("address: %p \n", (void*)functionstrcpy(str1,str2));
, потому что вы просто выводите значение действительного указателя.