Пример #1
0
void StrArr::mergeArr(const StrArr &obj)
{
    int totalSize = size + (obj.getSize());
    char **tempArr = new char *[totalSize];
    int toAlloc = 0;
    int cntr = 0;
    int i=0;
    for(int k = 0; k < size; ++k)
    {
        int subcntr = 0;
        for(int j = 0; j < cntr; ++j)
        {
            if(strcmp(tempArr[j],arr[i])) ++subcntr;
        }
        if(cntr == subcntr)
        {
            toAlloc = strlen(arr[i]);
            tempArr[i] = new char[toAlloc];
            strcpy(tempArr[i], arr[i]);
            ++cntr;
            ++i;
        }
        else --totalSize;
    }
    for(int c = 0; c < obj.getSize(); ++c)
    {
        int subcntr = 0;
        for(int j = 0; j < cntr; ++j)
        {
            if(strcmp(tempArr[j],obj.getStr(c))) ++subcntr;
        }
        if(cntr == subcntr)
        {
            toAlloc = strlen(obj.getStr(c));
            tempArr[i] = new char[toAlloc];
            strcpy(tempArr[i], obj.getStr(c));
            ++cntr;
            ++i;
        }
        else --totalSize;
    }
    for(int i = 0; i < size; ++i)
    {
        delete[] arr[i];
    }
    delete[] arr;
    arr = tempArr;
    size = totalSize;
}
Пример #2
0
void StrArr::concat(const StrArr &obj)
{
    int totalSize = 0;
    int toCmp = obj.getSize();
    char **tempArr = new char *[size];
    for(int i = 0; i < size; ++i)
    {
        if(i >= toCmp)
        {
            while (i < size)
            {
                tempArr[i] = new char[strlen(arr[i])];
                strcpy(tempArr[i], arr[i]);
                ++i;
            }
        }
        else
        {
            totalSize = strlen(arr[i]) + strlen(obj.getStr(i));
            tempArr[i] = new char[totalSize];
            int toAdd = strlen(arr[i]);
            strcpy(&tempArr[i][0], arr[i]);
            strcpy(&tempArr[i][toAdd], obj.getStr(i));
        }
    }
    for(int i = 0; i < size; ++i)
    {
        delete[] arr[i];
    }
    delete[] arr;
    arr = tempArr;
}
Пример #3
0
StrArr::StrArr(const StrArr &obj)
{
    cout << "test";
    size = 0;
    buffSize = startSize;
    arr = new char* [buffSize];
    int toAlloc = 0;
    for(int i = 0; i < buffSize; ++i)
    {
        toAlloc = strlen(obj.getStr(i));
        arr[i] = new char [toAlloc];
    }
    while(obj.getSize() != size)
    {
        this->addStr(obj.getStr(size));
    }
}