`strncpy` 是 C 语言中的一个标准库函数,用于从源字符串复制指定长度的字符到目标字符串,这个函数定义在 `string.h` 头文件中。
函数原型如下:
```c
char *strncpy(char *dest, const char *src, size_t n);
参数说明: * `dest`:目标字符串,即要复制到的字符串。 * `src`:源字符串,即要从中复制的字符串。 * `n`:要复制的字符数。 返回值: * 返回指向目标字符串的指针。 使用 `strncpy` 时需要注意以下几点: 1. 如果 `n` 大于源字符串的长度,那么目标字符串将会被填充为 `n - 1` 个 '\0',以防止未定义行为。 2. 如果 `n` 小于源字符串的长度,那么源字符串将会被截断,只复制 `n` 个字符。 3. 如果目标字符串的空间不足以容纳复制的字符和终止字符 '\0',那么结果未定义。 4. `strncpy` 不会自动添加终止字符 '\0',所以使用 `strncpy` 之后,需要手动添加一个 '\0' 来确保目标字符串是正确终止的。 5. 如果源字符串和目标字符串重叠,结果未定义。 示例: ```c #include <stdio.h> #include <string.h> int main() { char src[] = "Hello, World!"; char dest[10]; strncpy(dest, src, 5); dest[5] = '\0'; // 手动添加终止字符 '\0' printf("src: %s\n", src); printf("dest: %s\n", dest); // 输出 "Hello" return 0; }