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; }
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; }
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)); } }