strncpy
是C标准库(<string.h>
)中用于字符串操作的函数,其核心功能是将源字符串的前n个字符复制到目标字符串中。与strcpy
不同,strncpy
通过限制复制长度来避免缓冲区溢出,但也需注意其特性。
char *strncpy(char *dest, const char *src, size_t n);
'\0'
)返回目标字符串的指针(即dest
),通常可直接忽略返回值。
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello, World!";
char dest[20];
strncpy(dest, src, 5);
dest[5] = '\0'; // 必须手动添加终止符
printf("目标字符串: %s\n", dest); // 输出 "Hello"
return 0;
}
'\0'
dest
的容量至少为n+1(含终止符)'\0'
snprintf(dest, n, "%s", src)
实现类似功能// 错误示例:未处理终止符
char dest[5];
strncpy(dest, "Hello", 5);
printf("%s", dest); // 可能输出乱码