上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.1.4 复制前n个字符strncpy()
【函数原型】char* strncpy(char* dest,char* src, int n)
【功能讲解】复制字符串src中最多n个字符到字符串dest中,返回指向dest的指针。
【参数说明】dest为目的地址,src为被复制字符串地址,n为指定的最大复制字节数。
【程序示例】本例程示范如何使用strncpy,注意查看如何写代码才能防止被复制字符个数大于目标地址大小,避免程序崩溃。
/*函数strncpy()示例*/ #include<string.h> #include<stdio.h> int main(void) { /*定义一个字符串使其大于12[故意大于dest数组大小*/ char* src ="I will be fine!"; char dest[12]; strncpy(dest,src,sizeof(dest));/*复制前dest长度个字符*/ dest[sizeof(dest)-1] = '\0'; /*手动补上结束字符\0*/ printf("src:%s\n",src); printf("dest:%s\n",dest); return 0; }
【运行结果】
src:I will be fine! dest:I will be f
【实例讲解】例子的开始先定义一个字符串,接着使用strncpy复制,注意这里的写法,参数n如果指定个数大于目标地址空间则会造成程序崩溃,例子中使用sizeof求出目标空间大小,这样就不会越界了,最后别忘了在最后一个字节写入\0,如果想把dest当做字符串使用,这个是字符串的结尾标识。