• string类封装


    class cMyString
    {
    char* m_str;
    int m_strSize;
    public:
    cMyString();//指针指向一个空字符串
    cMyString(char* str);//字符串初始化
    ~cMyString();
    char* getStr()const;
    int getSize();//获得成员变量字符串的长度
    void setStr(char* str);//重新设置对象的成员变量的字符串
    void MyStrCat(char* str);//对象的成员变量字符串连接字符串
    void MyStrCat(cMyString* str);//对象的成员变量字符串连接成员变量字符串
    void MyStrCpy(char* str);//字符串拷贝到对象的成员变量字符串
    void MyStrCpy(cMyString* str);//别的cMyString成员变量字符串拷贝shis对象成员变量字符串
    int MyStrCmp(char* str);//字符串和对象的成员变量比较,为0相等 为正this->对象变量字符串大 为负this->对象变量字符串小
    int MyStrCmp(cMyString* str);//别的cMyString成员变量字符串和对象的成员变量比较,为0相等 为正this->对象变量字符串大 为负//this->对象变量字符串小
    int MyFindChar(char c);// 查找单个字符的下标
    int MyFindStr(char* str);//从成员字符串中找字符串
    };


    cMyString::cMyString(){ m_str = new char; m_str = ''; }
    cMyString::cMyString(char* str)
    {
    if (NULL==str)
    {
    m_str = new char; m_str = '';
    }
    int len = strlen(str);
    m_str = new char[len + 1];
    strcpy(m_str, str);
    }
    cMyString::~cMyString(){ delete[] m_str; }
    int cMyString::getSize(){ return strlen(m_str); }
    char* cMyString::getStr()const { return m_str; }
    void cMyString::setStr(char* str)
    {
    delete[] m_str;
    if (NULL == str)
    {
    m_str = new char; m_str = '';
    }
    int len = strlen(str);
    m_str = new char[len + 1];
    strcpy(m_str, str);
    }
    void cMyString::MyStrCat(char* str)
    {

    int len1 = strlen(m_str);
    int len2 = strlen(str);
    char* tmp = new char[len1 + len2 + 1];
    strcpy(tmp, m_str);
    strcat(tmp, str);
    delete[]m_str;
    m_str = tmp;
    }

    void cMyString::MyStrCat(cMyString* str)
    {
    MyStrCat(str->m_str);
    }

    void cMyString::MyStrCpy(char* str)
    {
    if (NULL==str)
    {
    return;
    }
    delete m_str;
    m_str = NULL;
    int len = strlen(str);
    m_str = new char[len + 1];
    strcpy(m_str, str);
    }
    void cMyString::MyStrCpy(cMyString* str)
    {
    MyStrCpy(str->m_str);
    }

    int cMyString::MyStrCmp(char* str)
    {
    return strcmp(m_str, str);
    }

    int cMyString::MyStrCmp(cMyString* str)
    {
    return MyStrCmp(str->m_str);
    }


    int cMyString::MyFindChar(char c)
    {
    int i = 0;
    char* tmp = m_str;
    while (*tmp)
    {
    if (*tmp==c)
    {
    return i;
    }
    tmp++; i++;
    }
    return - 1;
    }
    //djklsf323
    int cMyString::MyFindStr(char* str)
    {

    if (str==NULL)
    {
    return -1;
    }
    int lenSubStr = strlen(str);
    int lenM = getSize();
    if (lenM==0 )
    {
    return -1;
    }
    int iPos = 0;
    while (iPos<=lenM-lenSubStr)
    {
    int j = 0;
    while (*(str+j)==*(m_str+iPos+j))
    {
    ++j;
    if (*(str+j)=='')
    {
    return iPos;
    }
    }
    ++iPos;
    }
    // int len1 = getSize();
    // unsigned short len2 = strlen(str);
    // if (str == NULL || *str == '' || len2>len1)
    // {
    // return -1;
    // }
    // int i = 0;
    // char*tmp = m_str;
    // while (strlen(tmp)>=len2)
    // {
    // char temp;
    // temp=*(tmp + len2);
    // *(tmp + len2) = 0;
    // if (strcmp(tmp,str)==0)
    // {
    // *(tmp + len2) = temp;
    // return i;
    // }
    // *(tmp + len2) = temp;
    // i++; tmp++;
    // }
    return -1;
    }
    int _tmain()
    {
    cMyString str1("123abc45tggf");
    int x=str1.MyFindStr("tgg");
    str1.getSize();
    return 0;
    }

  • 相关阅读:
    获取微信用户在微信小店的订单
    微信网页授权+获取用户基本信息+强制关注+JSSDK分享参数
    微信查询四六级成绩代码
    CURL SSL为6的由来
    阿里云虚拟主机安装禅道总结
    Android手机特殊软件配置
    微信支付参数一致性校验
    微信查询火星天气
    php下curl ssl常用问题
    群发技术-使用python3给微信好友群发消息
  • 原文地址:https://www.cnblogs.com/huninglei/p/5489318.html
Copyright © 2020-2023  润新知