Perché il strcpy(3)
(e strncpy(3)
) restituisce il primo argomento? Non vedo come questo aggiunge alcun valore. Invece, spesso preferirei avere il numero di byte copiati restituiti.C: Perché strcpy restituisce la sua argomentazione?
Addendum: cosa dovrei fare quando ho bisogno anche della lunghezza della stringa risultante? Devo davvero implementare la mia versione?
In modo che possa essere utilizzato nel concatenamento di funzioni. –
Sarebbe molto più utile se una variante di 'strcpy()' restituisse un puntatore al byte ''\ 0'' alla fine della stringa. Tuttavia, se la lunghezza controlla tutto prima di eseguire la copia (come dovresti essere sicuro), puoi usare 'memmove()' (o forse 'memcpy()') invece di 'strcpy()'. È solo quando non si dispone di una lunghezza disponibile che non può utilizzarli, ma è verosimilmente non sicuro eseguire la copia se non si conoscono le lunghezze della stringa di origine e del buffer di destinazione. –