常见的C++面试题之String类
来源:互联网 发布:品质365 知乎 编辑:程序博客网 时间:2024/06/05 02:01
#include <iostream>class String{public:String();String(const char* pchData);String(const String &StringOther);String & operator = (const String &StringOther);~ String();void print();private:char *m_pchString;};String::String(){m_pchString = NULL;}String::String(const char* pchData){if((NULL == pchData) ||(0 == strlen(pchData))){m_pchString = new char [1];*m_pchString = 0;}else{int len = strlen(pchData)+1;m_pchString = new char[len];memset(m_pchString,0,len);strncpy(m_pchString,pchData,len - 1);}}void String::print(){if(m_pchString){printf("\n[%s]\n",m_pchString);}}String::String(const String & StringOther){if(NULL == StringOther.m_pchString){m_pchString = new char [1]; if(m_pchString ){*m_pchString = 0; }else{//print error}}else{int len = strlen(StringOther.m_pchString)+1;m_pchString = new char[len];memset(m_pchString,0,len);strncpy(m_pchString,StringOther.m_pchString,len - 1);}}String & String::operator = (const String &StringOther){if(this == &StringOther){printf("\nmyself\n");return *this;}if(NULL != m_pchString){delete m_pchString;m_pchString= NULL;}if(NULL == StringOther.m_pchString){m_pchString = new char [1]; if(m_pchString ){*m_pchString = 0; }else{//print error}}else{int len = strlen(StringOther.m_pchString)+1;m_pchString = new char[len];if(m_pchString){memset(m_pchString,0,len);strncpy(m_pchString,StringOther.m_pchString,len - 1);}else{//print error}}return *this;}String::~String(){if(m_pchString != NULL){delete [] m_pchString;}}int main(){String a("11111"); a.print(); a = a;String b(a);b.print(); return 0;}
阅读全文
0 0
- C++:【常见面试题】String类的写法
- 常见的C++面试题之String类
- String类常见面试题
- C++【常见面试题】String类的实现,以及深拷贝、浅拷贝问题
- String常见面试题
- 面试题中常见的String类问题
- 面试题中常见的String类问题 .
- 面试题中常见的String类问题
- 面试题中常见的String类问题
- Java中String类的常见面试题
- Java中String类的常见面试题
- 【java】String类常见面试题
- Java-String类常见面试题
- C&C++常见面试题之strcat
- C&C++常见面试题之strcpy
- C常见面试题
- C常见面试题
- c string 面试题
- 【版本控制】git,svn,cvs 粗略比较
- 读书笔记:MySQL服务器性能调优监控
- 52单片机之寄存器
- LeetCode 452. Minimum Number of Arrows to Burst Balloons
- [centos] apache、php配置
- 常见的C++面试题之String类
- sql注释语句
- 51nod 1350
- [BZOJ 3261]最大异或和:可持久化字典树
- 7.将0移至末尾
- 数组
- hdu 1114 Piggy-Bank(完全背包)
- 如何用数组做乘法表
- HTML ,CSS,JS 等注释的区别