自写string类 怎么实现

自写的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;
}


请说一下哪里有问题