Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Ciag.hpp"
- static int ilosc=0;
- ciag::ciag()
- {
- ilosc++;
- rozmiar=0;
- }
- ciag::operator const char*(){
- return tablica;
- }
- ciag::ciag(const char* tekst){
- ilosc++;
- rozmiar = strlen(tekst) ;
- tablica = new char[rozmiar];
- for (int i = 0; i < (rozmiar-1); i++)
- {
- tablica[i] = tekst[i];
- }
- tablica[rozmiar - 1] = '\0';
- }
- ciag::ciag(const ciag &oryginal){
- ilosc++;
- rozmiar = oryginal.rozmiar;
- tablica = new char[rozmiar];
- for (int i = 0; i < (rozmiar - 1); i++)
- {
- tablica[i] = oryginal.tablica[i];
- }
- tablica[rozmiar - 1] = '\0';
- }
- ciag::~ciag(){
- ilosc--;
- }
- int ciag::dl(){
- return rozmiar-1;
- }
- int ciag::ile(){
- return ilosc;
- }
- ciag& ciag::operator= (const ciag& prawy){
- rozmiar = prawy.rozmiar;
- tablica = new char[rozmiar];
- for (int i = 0; i < (rozmiar - 1); i++)
- {
- tablica[i] = prawy.tablica[i];
- }
- //add end of string symbol
- tablica[rozmiar - 1] = '\0';
- return *this;
- }
- ciag& ciag::operator+=(const ciag &prawy){
- ciag temp;
- temp.rozmiar = (rozmiar-1) + prawy.rozmiar;
- temp.tablica = new char[temp.rozmiar];
- for (int i = 0; i < (rozmiar-1) ; i++)
- {
- temp.tablica[i] = tablica[i];
- }
- for (int i = 0; i < (prawy.rozmiar - 1 ); i++)
- {
- temp.tablica[(rozmiar-1) + i] = prawy.tablica[i];
- }
- rozmiar = temp.rozmiar;
- tablica = new char[rozmiar];
- for (int i = 0; i < (rozmiar -1); i++)
- {
- tablica[i] = temp.tablica[i];
- }
- tablica[rozmiar - 1] = '\0';
- return *this;
- }
- ciag& ciag::operator +=(const char * text)
- {
- ciag prawyCiag(text);
- ciag temp;
- temp.rozmiar = (rozmiar - 1) + prawyCiag.rozmiar;
- temp.tablica = new char[temp.rozmiar];
- for (int i = 0; i < (rozmiar - 1); i++)
- {
- temp.tablica[i] = tablica[i];
- }
- for (int i = 0; i < (prawyCiag.rozmiar - 1); i++)
- {
- temp.tablica[(rozmiar - 1) + i] = prawyCiag.tablica[i];
- }
- rozmiar = temp.rozmiar;
- tablica = new char[rozmiar];
- for (int i = 0; i < (rozmiar - 1); i++)
- {
- tablica[i] = temp.tablica[i];
- }
- //add end of string symbol
- tablica[rozmiar - 1] = '\0';
- //std::cout <<"Fajny coag"<< pointer << std::endl;
- return *this;
- }
- ciag operator+(const ciag& c1, const ciag& c2)
- {
- ciag temp;
- temp.rozmiar = (c1.rozmiar -1) + c2.rozmiar;
- temp.tablica = new char[temp.rozmiar];
- for (int i = 0; i < (c1.rozmiar - 1); i++)
- {
- temp.tablica[i] = c1.tablica[i];
- }
- for (int i = 0; i < (c2.rozmiar - 1); i++)
- {
- temp.tablica[(c1.rozmiar - 1) + i] = c2.tablica[i];
- }
- temp.tablica[temp.rozmiar - 1] = '\0';
- return temp;
- }
- ostream& operator<< (ostream &wyjscie, const ciag &tekst){
- wyjscie<< tekst.tablica;
- return wyjscie;
- }
- istream& operator>> (istream &wyjscie, ciag &tekst){
- string stxt;
- wyjscie >> stxt;
- const char* ctxt = stxt.c_str();
- tekst.rozmiar = strlen(ctxt) + 1 ;
- tekst.tablica = new char[tekst.rozmiar];
- for (int i = 0; i < (tekst.rozmiar-1); i++)
- {
- tekst.tablica[i] = ctxt[i];
- }
- tekst.tablica[tekst.rozmiar - 1] = '\0';
- return wyjscie;
- }
- int main() {
- ciag A("_ciag_A_");
- ciag B;
- B = "_ciag_B_";
- B += A;
- cout << B << endl;
- cout << "istnieja : " << ciag::ile() << " ciagi" << endl;
- ciag C;
- cout << "Podaj ciag C : ";
- cin >> C;
- cout << C;
- ciag D;
- D = A + B + "_cos_";
- // cout << "istnieja : " << ciag::ile() << " ciagi" << endl;
- // A += "_dodaje_zwykly_ciag_";
- // C += A;
- // cout << A << endl << B << endl << C << endl << D << endl;
- // cout << "dlugosc A " << A.dl() << endl;
- // cout << "dlugosc B " << B.dl() << endl;
- // cout << "dlugosc C " << C.dl() << endl;
- // cout << "dlugosc D " << D.dl() << endl;
- // { ciag ZZ;
- // cout << "powstal ciag lokalny i istnieja : " << ciag::ile() << " ciagi" << endl;
- // }
- // cout << "a teraz znowu sa : " << A.ile() << " ciagi" << endl;
- // cout << "dziala operator konwersji i funkcja C strlen " << strlen(A) << endl;
- // cout << "dziala operator konwersji i funkcja C strlen " << strlen(B) << endl;
- // cout << "dziala operator konwersji i funkcja C strlen " << strlen(C) << endl;
- // cout << "dziala operator konwersji i funkcja C strlen " << strlen(D) << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement