C字符串操作函数实现方法小结
本文实例讲述了C字符串操作函数实现方法。分享给大家供大家参考。具体如下:
下面是部分C字符串操作函数的实现,或许在某些笔试时可以用到!
#ifndefNULL
#defineNULL((void*)0)
#endif
/*
memcpy的实现代码
*/
void*memcpy(void*pDst,void*pSrc,intiLen)
{
char*pTmp=(char*)pDst;
char*pTmp2=(char*)pSrc;
if(0==iLen)
returnpDst;
while(iLen--)
*pTmp++=*pTmp2++;
returnpDst;
}
/*
memset的实现代码
*/
void*memset(void*pDst,intiSet,intiLen)
{
char*pTmp=(char*)pDst;
if(0==iLen)
returnpDst;
while(iLen--)
*pTmp++=(char)iSet;
returnpDst;
}
/*
strcpy的实现代码
*/
char*strcpy(char*pDst,char*pSrc)
{
char*pRst=pDst;
do
*pDst++=*pSrc;
while(*pSrc++);
returnpRst;
}
/*
strcat的实现代码
*/
char*strcat(char*s,char*a)
{
char*save=s;
for(;*s;++s);
while((*s++=*a++)!=0);
returnsave;
}
/*
strlen的实现代码
*/
intstrlen(char*pStr)
{
intiLen=0;
while(*pStr++)
iLen++;
returniLen;
}
/*
strcmp的实现
*/
intstrcmp(char*s,char*t)
{
for(;*s==*t;s++,t++)
{
if(('/0'==*s)||('/0'==*t))
{
if(*s==*t)
return0;
else
break;
}
}
return((*s>*t)?1:-1);
}
/*
strncmp的实现
*/
intm_strncmp(char*s,char*t,intn)
{
if(0==n)
return0;
for(;(--n>0)&&(*s==*t);s++,t++)
{
if('/0'==*s)
return0;
}
if(*s==*t)
return0;
return((*s>*t)?1:-1);
}
/*
strstr的实现
*/
char*strstr(char*s,char*find)
{
charc,sc;
unsignedintlen;
if((c=*find++)!=0)
{
len=lzs_strlen(find);
do
{
do
{
if((sc=*s++)==0)
return(NULL);
}while(sc!=c);
}while(lzs_strncmp(s,find,len)!=0);
s--;
}
return((char*)s);
}
希望本文所述对大家的C语言程序设计有所帮助。