1.strcpy函数

函数原型:char *strcpy(char *dst,char const *src)            必须保证dst字符的空间足以保存src字符,否则多余的字符仍然被复制,覆盖原先存储在数组后面的内存空间的数值,strcpy无法判断这个问题因为他无法判断字符数组的长度。

 1 #include <stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5 
 6     char message[5];
 7         int a=10;
 8     strcpy(message,"Adiffent");
 9     printf("%s %d",message,a);
10     return 0;
11 }

输出结果是Adiffent 10;因此使用这个函数前要确保目标参数足以容纳源字符串

2.strncpy函数:长度受限字符串函数

函数原型:char *strncpy(char *dst,char const *src,size_t len )       要确保函数复制后的字符串以NUL字节结尾,即1<len<sizeof(*dst)

 1 #include <stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5 
 6     char message[5];
 7         int a=10;
 8     strncpy(message,"Adiffent",2);//长度参数的值应该限制在(1,5)
 9     printf("%s %d",message,a);   //不包含1和5
10     return 0;
11 }

 

版权声明:本文为chunmu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chunmu/p/9844023.html