Advertisement
Jgug

l4_v1

Dec 18th, 2012
402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include "stdafx.h"
  3. #include <stdio.h>
  4. #include <iostream>
  5. #include <conio.h>
  6. #include <string.h>
  7. #include <fstream>
  8. #include <math.h>>
  9. #define SIZE 256
  10.  
  11. using namespace std;
  12.  
  13. class String
  14. {
  15.     char* str1;
  16.     char* str2;
  17. public:
  18.     String();
  19.     ~String();
  20.     String(char*);
  21.     char operator = (char*);
  22.     void print();
  23.     void set (char*);
  24.     char* run();
  25. };
  26.  
  27. String::String()
  28. {
  29.     str1 = new char[SIZE];
  30.     str1[0] = '\0';
  31.     str2 = new char[SIZE];
  32.     str2[0] = '\0';
  33. }
  34.  
  35. String::String(char *inStr)
  36. {
  37.     str1 = new char[strlen(inStr)];
  38.     str1[0] = '\0';
  39.     str2 = new char[strlen(inStr)];
  40.     str2[0] = '\0';
  41. }
  42.  
  43. String::~String()
  44. {
  45.     delete[] str1;
  46.     delete[] str2;
  47. }
  48.  
  49. char* String::run()
  50. {
  51.     unsigned int i;
  52.     unsigned int j = 0;
  53.     if (fmod(strlen(str1),2.0)!=0.0)
  54.     {
  55.         double num = strlen(str1);
  56.         num = ceil(num/2)-1;
  57.         for (i=0; i<strlen(str1);)
  58.         {
  59.             if (i!=num)
  60.             {
  61.                 str2[j] = str1 [i];
  62.                 i++;
  63.                 j++;
  64.             }
  65.             else
  66.             {
  67.                 i++;
  68.             }
  69.         }
  70.         str2[j] = '\0';
  71.     }
  72.     else
  73.     {
  74.         strcpy(str2, str1);
  75.     }
  76.     return str2;
  77. };
  78.  
  79. char String::operator = (char* str1)
  80. {
  81.     strcpy(str2,str1);
  82.     return *str2;
  83. }
  84.  
  85. void String::set(char *inStr)
  86. {
  87.     unsigned int i;
  88.     for (i=0; i<strlen(inStr); i++)
  89.     {
  90.         str1[i] = inStr[i];
  91.     }
  92.     str1[i] = '\0';
  93. };
  94.  
  95. void String::print()
  96. {
  97.     cout<<str1<<endl;
  98.     cout<<str2<<endl;
  99. }
  100.  
  101. void main()
  102. {
  103.     char inStr[256], newStr[256];
  104.     cout<<"Input string: "<<endl;
  105.     cin.getline(inStr, 256);
  106.     String str;
  107.     cout<<endl<<"Source & converted strings:"<<endl;
  108.     str.set(inStr);
  109.  
  110.     ofstream file("text.txt",ios::out);
  111.     file<<"sourse string: "<<inStr<<"\n"<<"converted string: "<<str.run()<<"\n";
  112.     file.close();
  113.  
  114.     str.print();
  115.  
  116.     String *s1, *s2;
  117.     s1 = new String();
  118.     s2 = new String();
  119.     s2->set(inStr);
  120.     s1=s2;
  121.     cout<<endl<<"String, copied using the overloading:"<<endl;
  122.     s1->print();
  123.  
  124.     _getch();
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement