function
<cstring>
strncpy
char * strncpy ( char * destination, const char * source, size_t num );
Copy characters from string
Copies the first num characters of source to destination. If the end of the source C string (which is signaled by a null-character) is found before num characters have been copied, destination is padded with zeros until a total of num characters have been written to it.
No null-character is implicitly appended at the end of destination if source is longer than num. Thus, in this case, destination shall not be considered a null terminated C string (reading it as such would overflow).
destination and source shall not overlap (see memmove for a safer alternative when overlapping).
Parameters
- destination
- Pointer to the destination array where the content is to be copied.
- source
- C string to be copied.
- num
- Maximum number of characters to be copied from source.
 size_t is an unsigned integral type.
Return Value
destination is returned.
Example
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | /* strncpy example */
#include <stdio.h>
#include <string.h>
int main ()
{
  char str1[]= "To be or not to be";
  char str2[40];
  char str3[40];
  /* copy to sized buffer (overflow safe): */
  strncpy ( str2, str1, sizeof(str2) );
  /* partial copy (only 5 chars): */
  strncpy ( str3, str2, 5 );
  str3[5] = '\0';   /* null character manually added */
  puts (str1);
  puts (str2);
  puts (str3);
  return 0;
}
 | 
Output:
| 
To be or not to be
To be or not to be
To be 
 | 
See also
- strcpy
- Copy string (function
)
- memcpy
- Copy block of memory (function
)
- memmove
- Move block of memory (function
)
- memchr
- Locate character in block of memory (function
)
- memcmp
- Compare two blocks of memory (function
)
- memset
- Fill block of memory (function
)