zoukankan      html  css  js  c++  java
  • 实现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++) != '');

        return str3;

      }

    2、strlen

        int strlen(const char * str)

        {

          int len = 0;

          assert(NULL != str);

          while (*str++ != '')

          { 

            len++;

          }

          return len;

        }

    3、strcat

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

        {

          char* destbak = dest;

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

          while ( '' != *dest)

          {

            dest++;

          }

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

          return destbak;

        }

    4、strcmp

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

          {

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

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

            {

              if (*str1 > *str2)

              {

                return 1;

              }

              if (*str1 < *str2)

              {

                return -1;

              }

              str1++;

              str2++;

            }

            if ('' == *str1 && '' == *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;

        }

        

  • 相关阅读:
    【题解】一本通例题 S-Nim
    【题解】一本通例题 取石子游戏
    【题解】[USACO09NOV]A Coin Game S
    【题解】取火柴游戏
    【题解】CF375D Tree and Queries
    Linux sudo用户提权与日志审计
    No space left on device
    CentOS下多种方法显示文本行号
    Python之行-01之初识python
    约瑟夫问题
  • 原文地址:https://www.cnblogs.com/gumpzlc/p/9650146.html
Copyright © 2011-2022 走看看