Non fanno propriamente la stessa cosa:
strcpy copia una stringa su un array di char.
strcat concatena a una stringa un'altra stringa.
sprintf serve alla formattazione.
Con strcpy puoi concatenare due stringhe volendo, ma non è fatta per questo, inoltre per usarla in tal modo devi prima calcolarti il puntatore sul quale copiare.
Con strcat puoi se vuoi copiare una stringa, ma dovrai prima copiare nell'array di destinazione la stringa vuota "" o assegnare alla prima cella '\0' che è equivalente.
Con sprinta puoi sia concatenare che copiare, ma non è fatta per questo. Serve per la formattazione ed è l'unica che ti permette ad esempio di formattare un int: sprintf(dest, "Result: %05u", uint_value);
sprintf, se usata per copiare o concatenare, sarà sempre la più inefficiente in quanto prima deve interpretare la stringa di formattazione.
Utilizzare strcpy o strcat nei panni l'una dell'altra introduce solo complicazioni.
Sono 3 funzioni diverse fatte per scopi diversi.

Rispondi quotando