strcpy and strcat are much simpler oprations compared to sprintf, which needs to parse the format string
strcpy and strcat are small so they will generally be inlined by the compilers, saving even one more extra function call overhead. For example, in llvm strcat will be inlined using a strlen to find copy starting position, followed by a simple store instruction