Hyluss icon

przeciazanie

Hyluss | PRO | 07/02/16 06:51:01 PM UTC | 0 ⭐ | 530 👁️ | Never ⏰ | []
C |

2.38 KB

|

None

|

0 👍

/

0 👎

// przeciazadnie1zadanie2.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <conio.h>
#include <malloc.h>
#include <string.h>
 
class DynString {
char* string;
int linia;
 
public:
DynString (DynString &dyn);
DynString (char* lancuch);
const char* CStr ();
const int Size ();
void operator += (char *lancuch);
void operator ! ();
int ZwrocLinie();
 
};
/////////////////////////////////////
 
DynString::DynString (char* lancuch)
{
int dlugosc;
dlugosc=strlen(lancuch);
 
    string = (char*)malloc ( (dlugosc + 1)*sizeof(char) );
    if (string !=NULL)
    {
        strcpy (string,lancuch);
    }
}
 
const char* DynString::CStr () 
{
return string;
}
 
const int DynString::Size ()
{
    return strlen(string);
}
 
DynString::DynString (DynString &dyn)
{
    string = (char*)malloc( ( strlen(dyn.string) + 1)*sizeof(char));
        if(string != NULL)
        {
                strcpy(string, dyn.string);
        }
}
 
 
void DynString::operator+= (char* lancuch)
{
    int ilosc = strlen  (lancuch) + strlen (string) + 1;
    int starailosc = strlen (string);
    char * oldstring;
    
    oldstring=string;
 
    string = (char*) realloc (string, ilosc);
    if (string != NULL)
    {
        strcpy(string, oldstring);
        char *ptr = string;
 
        ptr += strlen(string);
        strcpy(ptr, lancuch);
    }
 
}
 
void DynString::operator! ()
{
strupr (string);
}
 
int DynString::ZwrocLinie ()
{
return linia;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
        DynString napis("Napis testowy.");
        printf("Napis: %s\n", napis.CStr());
        printf("Znakow: %i\n", napis.Size());
 
        DynString kopia = napis;
        printf("Kopia: %s\n", kopia.CStr());
        printf("Znakow: %i\n", kopia.Size());
 
        kopia += " - pierwszy fragment -";
        kopia += " drugi fragment.";
 
        printf("Napis %s\n", napis.CStr());
        printf("Znakow: %i\n", napis.Size());
        printf("Kopia %s\n", kopia.CStr());
        printf("Znakow: %i\n", kopia.Size());
 
        !napis;
        printf("Napis %s\n", napis.CStr());
        printf("\nKoniec.");
 
 
printf (" //////////////////////////////////////////////////////// \n");
 
        DynString napis3("Napis testowy.");
 
        printf ("linia nr [%d] - ",napis.ZwrocLinie() );
        printf("Napis: %s\n", napis.CStr());
        printf("Znakow: %i\n", napis.Size());
        
 
    _getch();
    return 0;
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎