std::string类的实现
来源:互联网 发布:迈阿密热线知乎 编辑:程序博客网 时间:2024/06/01 10:50
using namespace std;class String{public:String(const char *str = NULL);String(const String &other);char* Stringcpy(char *dst,const char *src);~String(void);String & operator=(const String &other);bool operator==(const String &str);friend std::ostream & operator<<(std::ostream& o, const String &str);private:char *m_data;};/*构造、析构、拷贝构造、赋值运、流输出运算*/String::String(const char *str){if (str == NULL){m_data = new char[1];*m_data = '\0';}else{int len = strlen(str);m_data = new char[len + 1];Stringcpy(m_data, str);}}String::~String(void){delete[] m_data;}String::String(const String &other){int len = strlen(other.m_data);m_data = new char[len + 1];Stringcpy(m_data, other.m_data);}char* String::Stringcpy(char *dst,const char *src){assert(dst != NULL);assert(src != NULL);char *ret = dst;while ((*dst++ = *src++) != '\0');return ret;}String & String::operator=(const String &other){if (this == &other)return *this;delete[]m_data;int len = strlen(other.m_data);m_data = new char[len + 1];Stringcpy(m_data, other.m_data);return *this;}bool String::operator==(const String &str){return strcmp(m_data, str.m_data) == 0;}ostream & operator<<(ostream &o, const String &str){o << str.m_data;return o;}int main(){String s = "hello";String s2 = s;String ss = "hello";cout << "s = " << s << endl;cout << "s2 = " << s2 << endl;cout << boolalpha << (ss == s) << std::endl;}
0 0
- std::string类的实现
- std::string的trim()实现
- 实现CString到std::string的转换
- 实现std::string的format函数
- 介绍一个模拟std::string的类
- std::string类的常用操作
- std::string的用法
- 全局的std::string
- std::string的用法
- std::string的用法 .
- std::string 的 replace函数的自定义实现
- std::string实现原理1
- std::string类详解
- std::string类详解
- std::string类详解
- std::string类详解
- std::string类简介
- std::string类详解
- JavaScript高级
- java linkedlist 原理
- SmartSVN上传项目遇到的问题
- 2016太原网络营销师揭秘面试题百度竞价(SEM)中百度网盟推广的理解?
- 散列表(哈希表)应用实例,同时借助最小堆
- std::string类的实现
- Topcoder SRM 683 Div2 B
- MySQL存储引擎小知识
- DEV GRIDVIEW 表格内嵌套表格
- Thin LUN 和 Thick LUN
- Android开发-UI控件:选项卡切换时改变布局中内容的方法
- HTML javacript 域名合法性检测
- 可递归锁与非递归锁
- [MySQL] - errno:150