Http://www.cnblogs.com/chio/archive/2009/08/01/1536628.html
//============================================================================
Name:HelloWorld.cpp
Author:chio <[email protected]>
version:ver.1.0.0
Copyright:suprasoft Inc,.
Description:todo
//============================================================================
#include <iostream>
#include <string.h>
#include <cassert>
using namespace Std;
char * strcpy (char *dst, const char *src) {
ASSERT (src! = null && DST! = null);
char *ret = DST;
while ((*dst++ = *src++)! = ' + ');
return ret;
}
void * memcpy (void *dst, const void *SRC, size_t len) {
ASSERT (src! = null && DST! = null);
void *ret = DST;
int i = len;
Anti-overlap
if (src < DST) {
Char *csrc = (char *) src;
Char *CDST = (char *) DST;
while (i--) {
*cdst++ = *csrc++;
}
} else {
Char *csrc = (char *) src + len-1;
Char *CDST = (char *) DST + len-1;
while (i--) {
*cdst--= *csrc--;
}
}
return ret;
}
int main () {
char *src = "Hello World";
Char *dst = new Char[0];
cout << strcpy (DST, SRC) << Endl;
void *MEMSRC = (void *) "Hello";
Char memdst[6];
MEMDST[5] = ' + ';
cout << (char *) memcpy (MEMDST, MEMSRC, 5) << Endl;
return 0;
}
Standard implementations of strcpy and memcpy