1. 函数介绍
char * strncpy ( char * destination, const char * source, size_t num );
功能: 字符串拷贝,将source
指向的字符串拷贝到destination
指向的空间中,最多拷贝num
个字符。
参数:
destination
:指针,指向目的地空间
source
:指针,指向源头数据
num
:从source指向的字符串中最多能拷贝的字符个数
返回值:
strncpy
函数返回的目标空间的起始地址
2. 代码演示
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[20] = { 0 };
char arr2[] = "abcdefghi";
char* str = strncpy(arr1, arr2, 5);
printf("%s\n", arr1);
printf("%s\n", str);
return 0;
}
3. 比较strcpy和strncpy函数
strcpy函数拷贝到\0
为止,如果空间不够的话,容易出现越界行为。
strncpy函数制定了拷贝的长度,源字符串不一定要有\0
,同时在设计参数的时候,就会多一层思考:目标空间的大小是否够用,strncpy相对strcpy函数更加安全。
完