实现strlen、strcpy、strcmp、strcat、memcpy等函数

<assert.h>

<string.h>

1、strcpy

  char* strcpy(char* str1,const char* str2)

  {

    assert((str1 != NULL) && (str2 != NULL));

    char* str3 = str1;

    while((*str1++ == *str2++) != '\0');

    return str3;

  }

2、strlen

    int strlen(const char * str)

    {

      int len = 0;

      assert(NULL != str);

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

      { 

        len++;

      }

      return len;

    }

3、strcat

    char* strcat(char *dest, const char *src)

    {

      char* destbak = dest;

      assert(NULL != dest && NULL != src);

      while ( '\0' != *dest)

      {

        dest++;

      }

      while (*dest++ = *src++);

      return destbak;

    }

4、strcmp

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

      {

        assert(NULL != str1 && NULL != str2);

        while ( '\0' != *str1 || '\0' != *str2 )

        {

          if (*str1 > *str2)

          {

            return 1;

          }

          if (*str1 < *str2)

          {

            return -1;

          }

          str1++;

          str2++;

        }

        if ('\0' == *str1 && '\0' == *str2)

        {

          return 0;

        }  

      }

5、memcpy

    void *my_memcopy(void *str1, const void *str2,int len)

    {

      char *tmp1=(char*)str1;

      char *tmp2=(char*)str2;

      void *ret=str1;

      assert(NULL!=str1&&NULL!=str2);

      while(len--)

      {

        *tmp1++ = *tmp2++;

      }

      return ret;

    }

    

 

posted @ 2018-09-15 10:23  zlc1010  阅读(455)  评论(0编辑  收藏  举报