C语言中strcpy,strcmp,strlen,strcat函数原型

来源:互联网 发布:淘宝炉石传说 编辑:程序博客网 时间:2024/06/05 18:07
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;
}
0 0
原创粉丝点击