本文主要是介绍8月29日,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思维导图
作业:
仿照string类,实现myString
代码
mystring.h
#ifndef MYSTRING_H
#define MYSTRING_H#include <iostream>
#include<string.h>using namespace std;class myString
{
private:char *str;int size;public://无参构造myString():size(10){str = new char[size];}//有参构造myString(const char *s);//判空函数void judge_empty();//size函数int str_size ();//c_str函数const char *c_str();//at函数char &at (int index);//二倍扩容void expend();//析构函数~myString(){delete []this->str;cout << "析构成功" << endl;}
};#endif // MYSTRING_H
mystring.cpp
#include"mystring.h"//有参构造
myString::myString(const char *s)
{size = strlen(s);this->str = new char [size+1];strcpy(this->str , s);cout <<"s1 : "<<this->str<<endl;
}//判空函数
void myString::judge_empty()
{if(!*(this->str)){cout << "空" <<endl;}else{cout << "非空" <<endl;}
}//size函数
int myString::str_size ()
{return this->size;
}//c_str函数
const char *myString::c_str()
{return this->str;
}//at函数
char &myString::at (int index)
{return str[index];
}//二倍扩容
void myString::expend()
{size*=2;char *temp=new char[size];strcpy(temp,this->str);delete[]this->str;this->str=temp;
}
main.cpp
#include "mystring.h"int main()
{myString s1("hello");cout <<"size="<<s1.str_size()<<endl;cout<<"第1个字符为"<<s1.at(0)<<endl;cout << "s1判空结果为:";s1.judge_empty();return 0;
}
结果
这篇关于8月29日的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!