strcpy函数的原型:char* strcpy(char* dest, const char* src);
memcpy函数的原型:void *memcpy( void *dest, const void *src, size_t count );
memset函数的原型:memset(void *s, int ch,size_t n);
strcpy,memcpy和memset主要有以下三点区别:
a.复制内容不同,strcpy只能复制字符串,而memcpy可以复制任一内容,比如整形、结构体等。所以在复制字符串时会用strcpy(因为效率原因),而复制其他类型数据一般会用memcpy。
b.从参数可以看出复制方法也不尽相同。strcpy不需要指定特定长度,遇到“\0”才会结束,所以使用不当容易造成溢出。memcpy则是根据第三个参数决定复制长度。
c.将s中当前位置后面的n个字节用 ch 替换并返回 s,作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零的一种快速操作。