博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
String类的实现
阅读量:5036 次
发布时间:2019-06-12

本文共 1541 字,大约阅读时间需要 5 分钟。

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 = '\0'

  }

  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++) != '\0')

    len++;

  return len;

}

 

3.

void strcpy(char *strDest, char *strSrc)

{

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

  char *address = strDest;

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

  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 != '\0'  && *dest != '\0')

  {

    src++;

    dest++;

  }

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

    ruturn 0;

  else

    return -1;

}

转载于:https://www.cnblogs.com/SnailProgramer/p/4510122.html

你可能感兴趣的文章
12th week blog
查看>>
dijkstra (模板)
查看>>
python小记(3)
查看>>
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
基于LBS功能,Geohash在PHP中运用实例
查看>>
NoClassDefFoundError: org.ksoap2.transport.HttpTransportSE
查看>>
关于MVC与MVP的理解
查看>>
PHP preg_match正则表达式
查看>>
Windows2008R2安装Exchange 2010前必须要做的准备工作
查看>>
了解栈(顺序栈)的实现方法
查看>>
bzoj 3732 Network
查看>>
对象数组
查看>>
Hadoop创建/删除文件夹出错
查看>>
差速移动机器人之建模与里程计
查看>>
Django学习笔记
查看>>
03-THREE.JS GUI使用
查看>>