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语言程序设计有所帮助。