几个常用函数的实现strcpy,memcpy,memmove,strcat,strcmp

来源:互联网 发布:淘宝风格馆店铺形象图 编辑:程序博客网 时间:2024/05/17 01:34

1.  strcpy

  函数原型:  char * strcpy(char * strDest,const char * strSrc);  具体实现:   char * strcpy(char * strDest,const char * strSrc)  {    if(strDest == NULL ||strSrc == NULL)      throw "Error copy !";      char *strTemp = strDest;      while((*strDest++ = *strSrc++) != '\0')       ;      return strTemp;   }

2. strcat

函数原型:char* strcat(char* strDest, const char* strSrc);具体实现:char* strcat(char* strDest, const char* strSrc){if(strDest == NULL || strSrc == NULL)throw "concat Error!";char* strTemp = strDest;while(*strTemp++ != '\0');while((*strTemp++ = *strSrc++) != '\0');return strDest;}


3.strcmp

函数原型:int strcmp(const char* strDest, const char* strSrc);具体实现:int strcmp(const char* strDest, const char* strSrc){int nRet = 0;if(strDest == NULL || strSrc == NULL)throw "compare Error!";while(!(nRet = (*strDest - *strSrc)) && strSrc) {++strDest;++strSrc;}if (nRet > 0){nRet = 1;}else if (nRet < 0){nRet = -1;}return nRet;}
返回值:
* returns -1 if strDest < strSrc* returns 0 if strDest == strSrc* returns +1 if strDest > strSrc


4. memcpy

函数原型:void *memcpy(void* pvTo, void* pvFrom, size_t size);具体实现:void *memcpy(void* pvTo, void* pvFrom, size_t size){if(pvFrom == NULL || pvTo == NULL)throw "memcpy Error!";void* pvTempTo = pvTo;void* pvTempFrom = pvFrom;if (pvFrom < pvTo + size && pvTo < pvFrom + size)throw "memcpy Error!";while(size-- > 0){*pvTempTo++ = *pvTempFrom++;}return pvTo;}

5. memmove

函数原型:void* memmove(void* dest, void* source, size_t size);具体实现:void* memmove(void* dest, void* source, size_t size){if (dest == NULL || source == NULL)throw "memmove Error!";void * destTemp = dest;if (dest >= (source + size) || source >= (dest + size)){while(size-- > 0)*dest++ = *source++;}else{dest += size - 1;source += size - 1;*dest-- = *source--;}return destTemp;}




原创粉丝点击