字符串-字符串类的实现(数据结构基础 第4周)
2016-07-05 16:28
337 查看
这里只是简单实现了字符串的构造函数和赋值运算,其他待补充。
源码
//String.h
//test.cpp
源码
//String.h
#pragma #include <string.h> class String { private: char* str; //字符串的数据表示 int sz; //串的当前长度 public: String():str(NULL),sz(0) {} String(char* s) { //先要确定新创字符串实际需要的存储时间,s的类型为(char*),作为新创字符串的初值。 //确定s的长度,用标准字符串函数strlen(s)计算长度 sz = strlen(s); //然后,在动态存储区域开辟一块空间,用于存储初值s,把结束字符也包括进来 str = new char[sz+1]; //开辟空间不成功时,运行异常,退出 // assert(str != NULL); //用标准字符串函数strcpy,将s完全复制到指针str所指的存储空间 strcpy(str, s); } ~String() { delete [] str; //必须释放动态存储空间 } //此处返回值必须为引用 String& operator = (String& s) { //参数s将被赋值到本串。 //若本串的串长和s的串长不同,则应该释放本串的str存储空间,并开辟新的空间 if (sz != s.size()) { delete [] str; //释放原存储空间 str = new char[s.size()+1]; sz=s.size(); } strcpy(str, s.c_str()); return *this; //返回本实例,作为String类的一个实例 } int size() { return sz; } char* c_str() { return str; } };
//test.cpp
#include<iostream> #include "String.h" using namespace std; int main() { String s1("hello"); String s2("hello world"); s1=s2; return 0; }
相关文章推荐
- 字符串-英语数字转换器(数据结构基础 第4周)
- python 2.7 中文教程-5:数据结构
- 求圆圈中剩下的最后一个数字
- 【数据结构】顺序队列
- 团体程序设计天梯赛-练习集 L2-004. 这是二叉搜索树吗?GU
- 一个鼓,左右手轮流敲打。
- opencv 基本数据结构
- Hbase系统架构及数据结构
- redis源码分析之数据结构(一)链表adlist.c
- 数据结构 猫狗队列
- 数据结构笔记:线性表链式存储结构
- 图的应用详解-数据结构
- 图的遍历 - 数据结构
- 图的应用详解-数据结构
- 图的遍历 - 数据结构
- 《Java数据结构与算法》笔记-CH6-递归-1递归实现全排列字符串
- 插入排序
- 选择排序
- 队列
- 《1》数据结构、简明概念