Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- using namespace std;
- class String{
- char *data;
- int len;
- public:
- String (){//конструктор по-умолчанию
- data = NULL;
- len = -1;
- }
- String (char*data);//конструктор с параметром CHAR на копировании
- ~String (){//деструктор
- }
- String& operator=(const String&orig){//оператор присваивания
- len = strlen (orig.data);
- data = new char[len + 1];
- data = orig.data;
- }
- String operator+(const String&strPLUS); //оператор сложения(конкатенация)
- void show_string (void);
- char operator[](const int ind)const{
- return data[ind];
- }
- char& operator[](const int ind){
- return data[ind];
- }
- };
- String String::operator+(const String&strPLUS){
- String::len += strlen (strPLUS.data);
- char*tmp = new char[String::len + 1];
- strcpy (tmp,String::data);
- strcat (tmp,strPLUS.data);
- delete[] String::data;
- String::data = tmp;
- return tmp;
- }
- String::String (char* data){
- String::len = strlen (data);
- String::data = new char[String::len + 1]; ///dinam vidilili pamyat
- strcpy (String::data,data);
- } ///конструктор, присваивает начальные значения объекту, считает len, выделяет память, kopiruet
- void String::show_string (void){
- if (len == -1){
- cout << "PUSTAYA STROKA\n" << endl;
- } else{
- cout << "STROKA\t" << data << endl;
- cout << "lenght\t" << len << endl;
- cout << "\n" << endl;
- }
- } //показывает строку
- int main (){
- String test1; //пустая строка
- test1.show_string ();
- char strPRISV[] = "asdq";
- String testPRISV = strPRISV; ///вызов присваивания
- cout<< "stroka operatora prisvaivaniya:" ;
- testPRISV.show_string () ;
- char str1[255];
- cout << "vvedite stroku dlya copirovaniya: ";
- cin.getline (str1,255);
- String test (str1);
- test.show_string ();
- char str2[255];
- cout << "vvedite stroku dlya concatenation: ";
- cin.getline (str2,255);
- test+str2;
- test.show_string ();
- cout<<"\n vdedite N elementa: ";
- int n;
- cin>>n;
- cout<<endl;
- cout<<"element pod nomerom "<<n<<": "<<test[n]<<"\n"<<endl;
- test[3]='5';
- test.show_string();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement