C++【String类】String查找单个字符,查找字符串的函数实现

原创 2016年05月30日 17:16:39
#include<iostream>
#include<stdlib.h>
#include<assert.h>
using namespace std;

class String
{
public:
    String(const char* str)
        :_str(new char[strlen(str) + 1])
    {
        _size = strlen(str);
        _capacity = _size + 1;
        strcpy(_str, str);
    }

    String(const String& s)
        :_str(NULL)
    {
        String tmp(s._str);
        swap(_str, tmp._str);
    }

    ~String()
    {
        if (_str)
        {
            delete[] _str;
            _size = 0;
            _capacity = 0;
            _str = NULL;
        }
    }
    
     //找单个字符
    /*int Find(char ch)
    {
        for (int i = 0; i < _size;i++)
        {
            if (_str[i] == ch)
            {
                return i;
            }
        }
        return -1;
    }*/
    
    //找字符串
    int Find(const char* sub)
    {
        int subSize = strlen(sub);
        int subIndex = 0;
        int srcIndex = 0;
        while (srcIndex < _size - subSize)
        {
            int begin = srcIndex;
            int subIndex = 0;
            while (subIndex < subSize
                && begin < _size
                && _str[begin] == sub[subIndex])
            {
                begin++;
                subIndex++;
            }
            if (subSize == subIndex)
            {
                return srcIndex;
            }
            srcIndex++;
        }
        return -1;
    }
    
private:
    char* _str;
    int _size;
    int _capacity;
};                  

//找单个字符的测试函数
//void Test()
//{
//    String s("abcdef");
//    int ret = s.Find('d');
//    cout << "ret = "<< ret<<endl;
//}

//找字符串的测试函数
void Test()
{
    String s("abcdefgh");
    int ret = s.Find("efg");
    cout << "ret=" << ret;
}

int main()
{
    Test();
    system("pause");
    return 0;
}


C++中,自定义string类,实现字符串的赋值“=”和连接函数“+”

对于在C语言中,我们使用指针可以轻而易举的实现字符串的拷贝和连接等,在C++中,C在里面是完全兼容的,所以我们就可以在这里大展伸手,开始我们的C++的学习之旅,这篇文章我们实现自定义一个string类...

C++ string类中的字符串查找

C++ string类中的字符串查找     类string提供了大量查找功能和搜索功能,其中比较常用的查找和搜索函数是find()函数、 find_first_not_of()函数、fi...
  • cywosp
  • cywosp
  • 2012年02月21日 17:20
  • 84738

C++ string类中的字符串查找

C++ string类中的字符串查找     类string提供了大量查找功能和搜索功能,其中比较常用的查找和搜索函数是find()函数、 find_first_not_of()函数、fi...

字符串比较函数strncasecmp():比较字符串的前n个字符|字符串查找函数strstr和string.find() 查找字符串str1中是否存在与str2一样的子字符串

C语言strncasecmp()函数:比较字符串的前n个字符 头文件:#include 定义函数:int strncasecmp(const char *s1, const char *s2, ...
  • haiross
  • haiross
  • 2015年05月15日 11:25
  • 3998

C++字符串类string简析

  • 2011年12月12日 13:55
  • 8KB
  • 下载

C++课程设计之string字符串类

  • 2013年07月05日 21:41
  • 145KB
  • 下载

[C++]string类的查找函数

string类的查找函数: int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置int find(const char *s, int ...

关于C++中string类的查找函数的说明

string类的查找函数: int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置 int find(const char *s,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++【String类】String查找单个字符,查找字符串的函数实现
举报原因:
原因补充:

(最多只允许输入30个字)