strcpy/memcpy几个字符串函数的完美版(原)

来源:互联网 发布:java开发中间件 编辑:程序博客网 时间:2024/04/30 11:14

以下函数乃个人总结的最完美版本,欢迎交流。最好记下他们吧,被问的概率几乎100%。

strcpy函数:

char *strcpy(char * strDest,const  char* strSrc)   //注意第二个参数用const 修饰

{

   assert((strDest!=NULL)&&(strSrc!=NULL));

  char *address = strDest;

  while((*strDest+=*strSrc++)!='/0');    

  return address;

}

memcpy函数:

void* memcpy(void *pvTo,void * pvForm,size_t size)

{

   assert(pvTo!=NULL&&pvFrom!=NULL);

   assert(pbTo>=pvFrom+size||pvFrom>=pvTo+size);  //防止内存重叠

   byte *pbTo =(byte *)pvTo;

   byte *pbFrom =(byte *)pvFrom;

  while(size-->0)

      *pbTo++=*pbFrom++;

   return pvTo;

}

strlen完美版:

int  strlen(const char * str)

{

  assert(str!=NULL);

 int  len =0;

 while((*str++)!='/0')

   len ++;

return len;

}

strcmp函数完美版:

int strcmp(const char * str1,const char *str2)

{

    while(1)

   {

    if(*str1>*str2)   return 1;

   else if(*str1<*str2)  return -1;

   else   return 0;

   str1++;

   str2++;

   }

}

原创粉丝点击