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); // 可能输出乱码