1. 程式人生 > >考慮了記憶體重疊的字串拷貝函式strcpy

考慮了記憶體重疊的字串拷貝函式strcpy

 

考慮了記憶體重疊的字串複製函式

char * strcpy(char *dest, char *src)

{

char *d = dest; //backup input

char *s = src;

int count = 0;

assert(dest); //非空指標檢查

assert(src);

if(src == dest)

return src;

count = strlen(src) + 1;//src length

if(count<=1)

return 0; //empty src

if(dest<src || dest>(src+count))

{

while(count--)

*d++ = *s++;

}

else //dest 位於 src+count中間,

{

d = dest+count;

s = src+count;

while(count--)

*d-- = *s--; //倒過來拷貝

}

}