C++【String类】String删除单个字符,删除字符串的函数实现
2016-01-27 11:32
661 查看
#include<iostream> #include<stdlib.h> #include<assert.h> using namespace std; class String { public: String(const char* str) :_str(new char[strlen(str) + 1]) { _size = strlen(str); _capacity = _size + 1; strcpy(_str, str); } String(const String& s) :_str(NULL) { String tmp(s._str); swap(_str, tmp._str); } ~String() { if (_str) { delete[] _str; _size = 0; _capacity = 0; _str = NULL; } } //删除单个字符 /*void Erase(size_t pos) { assert(pos <=_size); //pos>_size报错 int begin = pos; while (begin <= _size) { _str[begin] = _str[begin + 1]; begin++; } --_size; }*/ //删除字符串 void Erase(size_t pos, int len) { assert(pos <= _size); int len1 = len + 1; while (len1--) { _str[pos] = _str[pos + len +1]; pos++; } _size = _size - len; } char* C_str() { return _str; } private: char* _str; int _size; int _capacity; }; void Test() { String s("abcdefghijk"); s.Erase(2,4); cout << s.C_str() << endl; } int main() { Test(); system("pause"); return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- 关于指针的一些事情
- android上改变listView的选中颜色
- String.intern
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- PostgreSQL ERROR: invalid escape string 解决办法
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析