Hyluss

przeciazanie

Jul 2nd, 2016
560
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.38 KB | None | 0 0
  1. // przeciazadnie1zadanie2.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <conio.h>
  6. #include <malloc.h>
  7. #include <string.h>
  8.  
  9. class DynString {
  10. char* string;
  11. int linia;
  12.  
  13. public:
  14. DynString (DynString &dyn);
  15. DynString (char* lancuch);
  16. const char* CStr ();
  17. const int Size ();
  18. void operator += (char *lancuch);
  19. void operator ! ();
  20. int ZwrocLinie();
  21.  
  22. };
  23. /////////////////////////////////////
  24.  
  25. DynString::DynString (char* lancuch)
  26. {
  27. int dlugosc;
  28. dlugosc=strlen(lancuch);
  29.  
  30.     string = (char*)malloc ( (dlugosc + 1)*sizeof(char) );
  31.     if (string !=NULL)
  32.     {
  33.         strcpy (string,lancuch);
  34.     }
  35. }
  36.  
  37. const char* DynString::CStr ()
  38. {
  39. return string;
  40. }
  41.  
  42. const int DynString::Size ()
  43. {
  44.     return strlen(string);
  45. }
  46.  
  47. DynString::DynString (DynString &dyn)
  48. {
  49.     string = (char*)malloc( ( strlen(dyn.string) + 1)*sizeof(char));
  50.         if(string != NULL)
  51.         {
  52.                 strcpy(string, dyn.string);
  53.         }
  54. }
  55.  
  56.  
  57. void DynString::operator+= (char* lancuch)
  58. {
  59.     int ilosc = strlen  (lancuch) + strlen (string) + 1;
  60.     int starailosc = strlen (string);
  61.     char * oldstring;
  62.    
  63.     oldstring=string;
  64.  
  65.     string = (char*) realloc (string, ilosc);
  66.     if (string != NULL)
  67.     {
  68.         strcpy(string, oldstring);
  69.         char *ptr = string;
  70.  
  71.         ptr += strlen(string);
  72.         strcpy(ptr, lancuch);
  73.     }
  74.  
  75. }
  76.  
  77. void DynString::operator! ()
  78. {
  79. strupr (string);
  80. }
  81.  
  82. int DynString::ZwrocLinie ()
  83. {
  84. return linia;
  85. }
  86.  
  87. int _tmain(int argc, _TCHAR* argv[])
  88. {
  89.         DynString napis("Napis testowy.");
  90.         printf("Napis: %s\n", napis.CStr());
  91.         printf("Znakow: %i\n", napis.Size());
  92.  
  93.         DynString kopia = napis;
  94.         printf("Kopia: %s\n", kopia.CStr());
  95.         printf("Znakow: %i\n", kopia.Size());
  96.  
  97.         kopia += " - pierwszy fragment -";
  98.         kopia += " drugi fragment.";
  99.  
  100.         printf("Napis %s\n", napis.CStr());
  101.         printf("Znakow: %i\n", napis.Size());
  102.         printf("Kopia %s\n", kopia.CStr());
  103.         printf("Znakow: %i\n", kopia.Size());
  104.  
  105.         !napis;
  106.         printf("Napis %s\n", napis.CStr());
  107.         printf("\nKoniec.");
  108.  
  109.  
  110. printf (" //////////////////////////////////////////////////////// \n");
  111.  
  112.         DynString napis3("Napis testowy.");
  113.  
  114.         printf ("linia nr [%d] - ",napis.ZwrocLinie() );
  115.         printf("Napis: %s\n", napis.CStr());
  116.         printf("Znakow: %i\n", napis.Size());
  117.        
  118.  
  119.     _getch();
  120.     return 0;
  121. }
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment