zoukankan      html  css  js  c++  java
  • String类的实现

    1.

    class String

    {

    public:

      String(const char *str = NULL);   // 构造函数

      String(const String &other);    // 拷贝构造函数

      ~String();             // 析构函数

      String &operator = (const String &other);  // 赋值函数

    private:

      char* m_data;

    }

    String::~String()

    {

      delete[] m_data;

    }

    String::String(const char*str)

    {

      if(str == NULL)

      {

        m_data = new char[1];

        *m_data = ''

      }

      else

      {

        int length = strlen(str);

        m_data = new char[length + 1];

        strcpy(m_data,str);

      }

    }

    String::String(const String &other)

    {

      int length = strlen(other.m_data);

      m_data = new char[lenght + 1];

      strcpy(m_data,other.m_data);

    }

    String &String::operator = (const String &other)

    {

      if(this == &other) return *this;

      delete[] m_data;

      int length = strlen(other.m_data);

      m_data = new char[length + 1];

      strcpy(m_data, other.m_data);

      return *this;

    }

    2.

    int strlen(const char *str)

    {

      assert(str != NULL);

      int len = 0;

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

        len++;

      return len;

    }

    3.

    void strcpy(char *strDest, char *strSrc)

    {

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

      char *address = strDest;

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

      return address;

    }

    4.

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

    {

      char* cp = dest;

      while(*cp) cp++;

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

      return cp;

    }

    5.

    int strCmp(char *src,char *dest)

    {

      while(*src == *dest  && *src != ''  && *dest != '')

      {

        src++;

        dest++;

      }

      if(*src == ''  && *dest == '')

        ruturn 0;

      else

        return -1;

    }

  • 相关阅读:
    建模:确定服务的边界——《微服务设计》读书笔记
    linux & windows下重启oracle
    Git配置用户名与邮箱
    Git中使用amend解决提交冲突
    微服务架构师的职责——《微服务设计读书笔记》
    MAC下配置ssh让SourceTree通过秘钥访问远程仓库
    微服务的概念——《微服务设计》读书笔记
    Uva 11572 唯一的雪花
    Codeforces Round #404 (Div. 2) ABC
    tyvj 1031 热浪 最短路
  • 原文地址:https://www.cnblogs.com/SnailProgramer/p/4510122.html
Copyright © 2011-2022 走看看