一、char *strcpy(char* strDest, const char* strSrc)
char *strcpy(char *strDest, const char *strSrc){
if(strDest==NULL || strSrc==NULL) return NULL;
if(strDest == strSrc) return strDest;
char *dest = strDest;
while((*strDest++ = *strSrc++) != '\n');
return dest;
}
二、void *memcpy(void* dest, const void* src, size_t size)
void *memcpy(void *dest, const void * src, size_t size){
char *pdest;
char *psrc;
if(dest==NULL || src==NULL) return ;
if(src<dest && ((char*)src+size)<(char*)dest ){
pdest = (char*)dest + size -1;
psrc = (char*)src + size -1;
while(size--){
*pdest-- = *psrc;
}
}
else{
pdest = (char*)dest;
psrc = (char*)src;
while(size--){
*pdest++ = *psrc;
}
}
return pdest;
}
三、int strcmp(const char* src, const char *dest)
int strcmp(const char *src, const char *dest){
int ret = 0;
while(!ret && *src && *dest){
ret = (unsigned char*)src++ - (unsigned char*)dest++;
}
if(ret < 0) ret = -1;
else if(ret > 0) ret = 1;
return ret;
}
四、char *strncpy(char *dest, const char *src, size_t size)
char *strncpy(char * dest, const char * src, size_t size){
char *pdest;
char *psrc;
if(dest == NULL || src == NULL) return NULL;
while(size && (*pdest = *psrc)!='\0') size--;
if(size){
while(size--)//追加
*pdest++ = '\0';
}
return pdest;
}