自写的string类无法实现正常运行
main.cpp
```c++
#include
#include "class.h"
using namespace std;
int start,end,index;
char *myStr,c;
using namespace std;
int main(){
String (myStr);
int x;
cin>>x;
while(x!='@'){
switch(x){
case 0:
int len();
case 1:
cin>>start>>end;
myStr.substr( start, end);
break;
case 2:
cin>>c;
cout<find_first_of( c);
break;
case 3:
cin>>index>>c;
myStr.add_before( index, c);
break;
case 4:
cin>>index;
myStr.delete_at ( index);
break;
case 5:
myStr.printStr ();
break;
default: break;
}
}
return 0;
}
class.h
```c++
#ifndef CLASS_H_INCLUDED
#define CLASS_H_INCLUDED
class String {
private:
char *myStr;
int mylen;
public:
// TO DO
// 默认构造函数
String(char *myStr =0);
// 复制构造函数
String(const String &str);
// 析构函数
~String();
// 0:获取字符串长度
int len();
// 1:求子字符串[start,end]
void substr(int start, int end);
// 2:查找首次出现字符c的位置
int find_first_of(char c);
// 3:在index处添加字符c
void add_before(int index, char c);
// 4:删除某个位置上的字符
void delete_at (int index);
// 5:输出字符串
void printStr ();
char get(int i);
};
#endif // CLASS_H_INCLUDED
class.cpp
#include "class.h"
#include
#include
using namespace std;
int String:: len(){
return mylen;
}
String::String(char *myStr){
char s[1000];
cin.getline(s,1000,'\n');
mylen=strlen(s);
myStr=new char[mylen];
strcpy(myStr,s);
}
String::String(const String &str){
mylen=str.mylen;
for(int i=0;iString::~String(){
delete myStr;
}
void String:: substr(int start, int end){
for(int i=start;i<=end;++i){
cout<<*(myStr+i);
}
}
int String::find_first_of(char c){
int i=0;
for(;iif(*(myStr+i)=='c'){
return i;
}
}
return -1;
}
void String::add_before(int index, char c){
mylen++;
char *s=new char[mylen+1];
strcpy(s,myStr);
delete myStr;
myStr=s;
for(int i=mylen;i>index+1;--i){
myStr[i]=myStr[i-1];
}
myStr[index+1]=c;
}
void String::delete_at (int index){
for(int i=index;i-1;++i){
*(myStr+i)=*(myStr+i+1);
}
mylen--;
}
void String::printStr (){
for(int i=0;i'\n';
}
char String::get(int i){
return *myStr+i;
}
请说一下哪里有问题