Reference

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

1
2
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)

AltStyle によって変換されたページ (->オリジナル) /