char *strcpy(char *strDest, const char *strSrc)
{
char *address=strDest;
assert((strDest!=NULL) && (strSrc!=NULL));
while(*strSrc!='\0')
{
*strDest++=*strSrc++;
}
*strDest='\0';
return address;
}
char *strcat(char *strDest,const char *strSrc)
{
char *address=strDest;
assert((strDest!=NULL) && (strSrc!=NULL));
while(*strDest!='\0')
strDest++;
while(*strSrc!='\0')
*strDest++=*strSrc++;
*strDest='\0';
return adress
}
int strcmp(const char *str1,const char *str2)
{
assert((*str1!='\0' && *str2!='\0')
while(*str1 && *str2 && *str1==*str2)
{
str1++;
str2++;
}
return *str1-*str2;
}
int strlen(const char *str)
{
int len;
assert(str!=NULL);
while(*str!='\0')
{
len++;
}
return len;
}
void *memcpy(void *dst, void *src, size_t n)
{
char *dp = (char*)dst;
char *sp = (char*)src;
assert((src!=0) && (dst!=0) && n>0));
while(n--)
*(dp++)=*(sp++);
*dp='\0';
return dst;
}
// 注意对于重合的要反向拷贝
void *memmove(void *dst,const void *src,int n)
{
char *dp = (char *)dst;
char *sp = (char *)src;
assert((src!=0)&&(dst!=0)&&(n>0));
if(sp>dp || (sp+n)<dp)
{
while(n--)
*(dp++)=*(sp++);
*dp='\0';
}else if(sp<dp)
{
sp += n;
dp += n;
*dp = '\0';
while(n--)
*(--dp) = *(--sp);
}
return dst;
}
{
char *address=strDest;
assert((strDest!=NULL) && (strSrc!=NULL));
while(*strSrc!='\0')
{
*strDest++=*strSrc++;
}
*strDest='\0';
return address;
}
char *strcat(char *strDest,const char *strSrc)
{
char *address=strDest;
assert((strDest!=NULL) && (strSrc!=NULL));
while(*strDest!='\0')
strDest++;
while(*strSrc!='\0')
*strDest++=*strSrc++;
*strDest='\0';
return adress
}
int strcmp(const char *str1,const char *str2)
{
assert((*str1!='\0' && *str2!='\0')
while(*str1 && *str2 && *str1==*str2)
{
str1++;
str2++;
}
return *str1-*str2;
}
int strlen(const char *str)
{
int len;
assert(str!=NULL);
while(*str!='\0')
{
len++;
}
return len;
}
void *memcpy(void *dst, void *src, size_t n)
{
char *dp = (char*)dst;
char *sp = (char*)src;
assert((src!=0) && (dst!=0) && n>0));
while(n--)
*(dp++)=*(sp++);
*dp='\0';
return dst;
}
// 注意对于重合的要反向拷贝
void *memmove(void *dst,const void *src,int n)
{
char *dp = (char *)dst;
char *sp = (char *)src;
assert((src!=0)&&(dst!=0)&&(n>0));
if(sp>dp || (sp+n)<dp)
{
while(n--)
*(dp++)=*(sp++);
*dp='\0';
}else if(sp<dp)
{
sp += n;
dp += n;
*dp = '\0';
while(n--)
*(--dp) = *(--sp);
}
return dst;
}