char jono1[6],jono2[6]; ... strcpy(jono2,"Koira"); strcpy(jono1,"Kissa on!"); ... printf("%s %s\n",jono1,jono2); /* - > Kissa on! on! */
+-----jono2 jono1 v | 0 1 2 3 4 5 0 1 2 3 4 5 | +-----------------------------------+ +--->|4B|69|73|73|61|20|6F|6E|21|00|61|00| +-----------------------------------+ K i s s a o n ! NUL a NULEdellä jono2:n pilaaminen voitaisiin estää kutsulla strncpy:
char jono1[6],jono2[6]; ... strncpy(jono2,"Koira",6); strncpy(jono1,"Kissa on!",6); ... printf("%s %s\n",jono1,jono2); /* - > Kissa Koira Koira */
+-----jono2 jono1 v | 0 1 2 3 4 5 0 1 2 3 4 5 | +-----------------------------------+ +--->|4B|69|73|73|61|20|6B|6F|69|72|61|00| +-----------------------------------+ K i s s a K o i r a NULVikana on kuitenkin edelleen se, että nyt strncpy ei laita NUL merkkiä jonon loppuun, mikäli käsittely lopetetaan maksimipituuden takia!
Usein tämä varmistetaan laittamalla NUL- merkki varmuuden vuoksi kopioinnin jälkeen:
... strncpy(jono1,"Kissa on!",6); jono1[6- 1] = 0; ...
+-----jono2 jono1 v | 0 1 2 3 4 5 0 1 2 3 4 5 | +-----------------------------------+ +--->|4B|69|73|73|61|00|6B|6F|69|72|61|00| +-----------------------------------+ K i s s a NULK o i r a NUL