|
#include <iostream>
#include <cstring>
int main( void )
{
char a[20] = "test";
char s[20];
// simple strncpy usage:
strcpy( s, "dogs like cats" );
printf( "Original string:\n '%s'\n", s );
strncpy( s, "mice", 4 );
printf( "After strncpy (no null-termination):\n '%s'\n", s );
strncpy( s+5, "love", 4 );
printf( "After strncpy into middle of string:\n '%s'\n", s );
strncpy( s, "mice", 6 );
printf( "After strncpy (with null-termination):\n '%s'\n", s );
}
Output
Original string:
'dogs like cats'
After strncpy (no null-termination):
'mice like cats'
After strncpy into middle of string:
'mice love cats'
After strncpy (with null-termination):
'mice'
The strncpy function copies the initial count characters of strSource to strDest and returns strDest. If count is less than or equal to the length of strSource, a null character is not appended automatically to the copied string. If count is greater than the length of strSource, the destination string is padded with null characters up to length count. The behavior of strncpy is undefined if the source and destination strings overlap. |
|