È possibile utilizzare strncpy
per duplicare la parte della stringa che si desidera stampare, ma è necessario fare attenzione ad aggiungere un terminatore null, poiché strncpy
non lo farà se non ne incontra uno nel stringa di origine. Una soluzione migliore, come ha sottolineato Jerry Coffin, sta utilizzando la funzione *printf
appropriata per scrivere o copiare la sottostringa desiderata.
Mentre strncpy
può essere pericoloso nelle mani di qualcuno non abituato, può essere più veloce in termini di tempo di esecuzione rispetto ad una soluzione stile printf
/sprintf
/fprintf
, poiché non v'è nessuno del sovraccarico di trattare con il stringhe di formattazione. Il mio suggerimento è di evitare strncpy
se puoi, ma è bene sapere per caso.
size_t len = 5;
char sub[6];
sub[5] = 0;
strncpy(sub, str + 5, len); // char[] to copy to, char[] to copy from(plus offset
// to first character desired), length you want to copy
fonte
2011-01-30 04:59:14
qual è il carattere o criteri si vuole fermare su? è difficile rispondere a questa domanda senza chiarimenti – kelloti