strcpy,strcmp,strlen,strcat函数原型

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值