C++官网参考链接:https://cplusplus.com/reference/cstring/strncpy/
函数
<cstring>
strncpy
char * strncpy ( char * destination, const char * source, size_t num );
从字符串中复制字符
将source的第一个num个字符复制到destination。如果在复制num个字符之前找到source中的C字符串的结束处(由空字符发出信号),则用0填充destination,直到总共向其写入num个字符。
如果source的长度大于num,则不会在destination的结束处隐式追加空字符。因此,在这种情况下,destination不应被视为以空结束的C字符串(这样读取它会导致上溢)。
destination和soure不应该重叠(重叠时,请参阅memmove以获得更安全的替代方案)。
形参
destination
指向要复制内容的目标数组的指针。
source
要复制的C字符串。
num
要从source中复制的最大字符数量。
size_t是无符号整型。
返回值
返回destination。
用例
/* strncpy example */
#include
#include
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;
}
输出: