C语言strncpy()函数:复制字符串中的n个字符
strncpy()函数
strncpy()
是C语言标准库中的一个字符串复制函数,用于将一个字符串的n
个字符复制到另一个字符串中;
头文件和函数原型
#include <string.h>
char* strncpy(char* restrict s1,
const char* restrict s2,
size_t n);
参数说明:
s1
,目标字符串的指针,表示要将源字符串复制到的位置;s2
,源字符串的指针,表示要复制的字符串;n
,要复制的字符数;
描述
strncpy()
函数的工作原理是将源字符串中的字符逐个复制到目标字符串中,直到达到指定的字符数n
或者遇到源字符串的结束符'\0'
;
如果源字符串的长度小于n
,则strncpy()
会在目标字符串的剩余位置填充'\0'
直到n
个字符都被复制。目标字符串可能不会以'\0'
结束,需要在使用strncpy()
后手动将目标字符串的最后一个字符设置为'\0'
;
返回值
strncpy()
函数返回目标字符串的指针,也就是s1
的值;
示例代码
这段代码演示了如何将一个字符串的前5个字符复制到另一个字符串中;
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "hello world!";
char str2[20];
strncpy(str2, str1, 5);
str2[5] = '\0';
printf("%s\n%d", str2, (int)strlen(str2));
}
程序运行结果
hello 5