codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <string> #include <iostream> using namespace std; class sChar { private: char* str; long len; public: sChar(const char * ch = 0); sChar(const sChar &ch); ~sChar(); sChar& operator+(const sChar &ch);//додати sChar + sChar sChar& operator+(const char *ch);//додати sChar + char sChar& CharTosCh(const char *ch); char * sChToChar() const;//sChar перетворити в char long sChLength() const; friend ostream &operator<<(ostream &out, const sChar &ch){ out<<ch.sChToChar(); return out; } }; sChar::sChar(const char * ch){ str = 0; len = 0; if( ch != 0 ) { len = strlen(ch); str = new char[1 + len]; memcpy(str, ch, len); str[len] = 0; } } sChar::sChar(const sChar &ch){ str = 0; len = 0; if( ch.str != 0 ) { len = strlen(ch.str); str = new char[1 + len]; memcpy(str, ch.str, len); str[len] = 0; } } sChar::~sChar(){ delete str; } sChar& sChar::CharTosCh(const char *ch)//char перетворити в sChar { delete str; len = 0; str = 0; if( ch != 0 ) { len = strlen(ch); if( len != 0 ) { str = new char[1 + len]; memcpy(str, ch, len); str[len] = 0; } } return *this; } char* sChar::sChToChar() const//sChar перетворити в char { return str; } long sChar::sChLength() const{ return len; } sChar& sChar::operator+(const char *ch)//додати sChar + char { char *cpy = 0; long size = 0; if( ch ) { size = strlen(ch); cpy = new char[1 + len + size]; memcpy(cpy, str, len); memcpy(cpy + len, ch, size); len = len + size; cpy[len] = 0; delete str; str = cpy; } return *this; } sChar& sChar::operator+(const sChar &ch)//додати sChar + sChar { return operator+(ch.str); } int main() { //створюємо рядок sChar g = "string"; cout << g.sChToChar(); //додаємо рядки sChar var1 = "C", var2 = "++"; cout << "\n" << var1 + var2 ; //додаємо декілька рядків cout << (sChar)"\n1" + (sChar)" 2 " + (sChar)"3"; cin.get(); return 0; }
Private
[
?
]
Run code
Submit