#include<iostream> #include<stdlib.h> #include<assert.h> using namespace std; class String { public: String(const char* str) :_str(new char[strlen(str) + 1]) { strcpy(_str, str); _size = strlen(_str); _capacity = _size + 1; } String(const String& s) : _str(NULL) //若不赋空则为随机值,随机值_str析构函数释放指针会崩溃 { String tmp(s._str); //重新开辟空间 swap(_str, tmp._str); } ~String() { if (_str) { delete[] _str; _size = 0; _capacity = 0; _str = NULL; } } //PushBack void PushBack(char ch) { checkcapacity(); this->_str[_size] = ch; _size++; this->_str[_size] = '\0'; } //popback /*void PopBack() { assert(_size > 0); --_size; _str[_size] = '\0'; }*/ char* C_str() { return _str; } private: char* _str; int _size; int _capacity; }; //PushBack测试函数 void Test() { char* s1 = "hello"; String s(s1); s.PushBack(' '); s.PushBack('w'); s.PushBack('o'); s.PushBack('r'); s.PushBack('l'); s.PushBack('d'); cout << s.C_str() << endl; } //PopBack测试函数 /*void Test() { String s("hello"); s.PopBack(); s.PopBack(); s.PopBack(); s.PopBack(); cout << s.C_str() << endl; }*/ int main() { Test(); system("pause"); return 0; }
C++【String类】String头插单个字符,头删单个字符的函数实现
原创
©著作权归作者所有:来自51CTO博客作者韩静静的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
STL-常用容器-string
string 类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete 替换replace,插入insertstring管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责(RAII)
C++STL STL常用容器 string类 string类的常用接口 -
追加string java 追加大乐透中奖规则
1亿元时,
Android java ui 算法