http://bbs.chinaunix.net/thread-25356-1-1.html
#include <stdio.h> #include <string.h> #include <assert.h> #include <stdlib.h> char *strcpy(char *strDest, const char *strSrc) { assert(strDest != NULL && strSrc != NULL); char *strDestCopy = strDest; while ((*strDest++ = *strSrc++) != '\0') ; return strDestCopy; } //char * strcpy(char * strDest,const char * strSrc) //{ // if ((strDest==NULL)||(strSrc==NULL)) //[1] // throw "Invalid argument(s)"; //[2] // char * strDestCopy=strDest; //[3] // while ((*strDest++=*strSrc++)!='\0'); //[4] // return strDestCopy; //} /*该实现会出错,有待探究*/ //char *strcpy(char * dest,char const * src){ // // if(strlen(dest)<strlen(src)){ // char * p = (char*)realloc(dest,sizeof(char)*strlen(src)); // if(p){ // dest = p; // }else{ // return NULL; // } // } // char * re = dest; // while(*src){ // *dest++=*src++; // } // *(dest+1) = 0; // return re; //} int main(int argc, char* argv[]) { char dst[] = "deststring"; char *src = "src"; printf("%s",strcpy(dst, src)); return 0; }