C 库函数 - strncpy()
C 标准库 -
描述
C 库函数 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。
声明
下面是 strncpy() 函数的声明。
char *strncpy(char *dest, const char *src, size_t n)
参数
- dest -- 指向用于存储复制内容的目标数组。
- src -- 要复制的字符串。
- n -- 要从源中复制的字符数。
返回值
该函数返回最终复制的字符串。
实例
下面的实例演示了 strncpy() 函数的用法。在这里,我们使用函数 memset() 来清除内存位置。
实例
#include <stdio.h>
#include <string.h>
int main() {
char src[40];
char dest[12];
memset(dest, '\0', sizeof(dest));
strcpy(src, "This is runoob.com");
strncpy(dest, src, 10);
printf("最终的目标字符串: %s\n", dest);
return(0);
}
让我们编译并运行上面的程序,这将产生以下结果:
最终的目标字符串: This is ru
C 标准库 -
strncpy 没有自动加上终止符的,需要手动加上不然会出问题的。
/* strncpy 实例 */ #include <stdio.h> #include <string.h> int main () { char str1[]= "To be or not to be"; char str2[40]; char str3[40]; /* 拷贝到缓冲区: */ strncpy ( str2, str1, sizeof(str2) ); /* 拷贝 5 个字符: */ strncpy ( str3, str2, 5 ); str3[5] = '\0'; /* 手动加上终止符 */ puts (str1); puts (str2); puts (str3); return 0; }