C 语言 strncpy 函数详解 - 安全的字符串复制
strncpy 函数是 C 语言中的一个字符串处理函数,用于将一个字符串复制到另一个字符串中。其函数原型为:
char *strncpy(char *dest, const char *src, size_t n);
其中,dest 为目标字符串的指针,src 为源字符串的指针,n 为要复制的最大字符数。
strncpy 函数的功能是将源字符串 src 的前 n 个字符复制到目标字符串 dest 中。如果源字符串的长度小于 n,那么目标字符串将被填充到 n 个字符。如果源字符串的长度大于等于 n,那么目标字符串将只包含源字符串的前 n 个字符,并且不会以空字符 '\0' 结尾。
需要注意的是,strncpy 函数不保证目标字符串 dest 以空字符 '\0' 结尾。如果需要保证目标字符串以空字符结尾,可以在调用 strncpy 函数后,手动在目标字符串的第 n 个字符处添加一个空字符。
下面是一个 strncpy 函数的示例:
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello, World!";
char dest[10];
strncpy(dest, src, sizeof(dest));
dest[sizeof(dest) - 1] = '\0'; // 手动添加空字符
printf("dest: %s\n", dest); // 输出:dest: Hello, Wor
return 0;
}
在上述示例中,源字符串是 'Hello, World!',目标字符串的大小为 10 个字符。由于目标字符串的大小限制为 10 个字符,所以只有前 9 个字符可以被复制到目标字符串中。最后手动添加了一个空字符,保证目标字符串以空字符结尾。
输出结果为:dest: Hello, Wor
原文地址: https://www.cveoy.top/t/topic/prKI 著作权归作者所有。请勿转载和采集!