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;
}strcpy,strcmp,strlen,strcat函数原型
最新推荐文章于 2017-11-07 22:07:50 发布
本文详细介绍了几个常用的字符串操作函数,包括strcpy(复制字符串)、strcat(连接字符串)、strcmp(比较字符串)、strlen(获取字符串长度)及memcpy(内存块拷贝)。通过对这些函数的源代码分析,读者可以更好地理解其内部实现机制。
2105

被折叠的 条评论
为什么被折叠?



