分类: C/C++
2009-07-12 13:53:23
|
memcpy函数与strcpy函数的区别?
void *memcpy(void *dest, const void *src, size_t n)
memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。
与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束。
strcpy函数:char *strcpy(char *s1,const char *s2)
是用于将s2所指向的字符串复制到s1所指向的字符数组中,然后返回s1的地址值。
注:以上函数均包含在string.h头文件中,写程序时不要忘记添加:
#include
chinaunix网友2009-10-22 02:29:17
重新整理下: char *strcpy(char *p, char *pSrc, int n) { char *temp = p; if (!p || !pSrc) { printf("Invalid NULL pointer"); return NULL; } int lengthSrc = 0; while (*pSrc) ++lengthSrc; if (n < lengthSrc) lengthSrc = n; if (abs(p - pSrc) < lengthSrc + 1) { printf("Dangerous that the source will be cut"); return NULL; } while (*temp++ = *pSrc++ && n > 0) --n; *temp = '\0'; return p; }
chinaunix网友2009-10-22 02:11:49
char *strcpy(char *p, char *pSrc, int n) { char *temp = p; if (!p || !pSrc) { printf("Invalid NULL pointer"; return NULL; } int lengthSrc = 0; while (*pSrc) ++lengSrc; if (abs(p - pSrc) < min(lengSrc, n)) { printf("Dangerous that destination and source are close"); return NULL; } while (*temp++ = *pSrc++ && n > 0) --n; *temp = '\0'; return p; }