// 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
0 B
|👍
/👎