Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. // test4.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6.  
  7. class String
  8. {
  9. char* str;
  10. int size;
  11.  
  12. public:
  13. String()
  14. {
  15. size = 5;
  16. str = new char[6];
  17. str[5] = '\0';
  18. }
  19. String(int size)
  20. {
  21. this->size = size;
  22. str = new char[size+1];
  23. str[size] = '\0';
  24. }
  25. String(char string[])
  26. {
  27. str = string;
  28. int i = 0;
  29. while (str[i] != '\0')
  30. i++;
  31. size = i;
  32. }
  33. String(const String& copy)
  34. {
  35. this->str = copy.str;
  36. this->size = copy.size;
  37. }
  38.  
  39. String RemoveAll(char ch)
  40. {
  41. char *strNew = str;
  42. int newSize = size;
  43. for (int i = 0; i < size; i++)
  44. {
  45. if (str[i] != ch)
  46. {
  47. *strNew++ = str[i];
  48. }
  49. else --newSize;
  50. }
  51. *strNew = '\0';
  52. this->size = newSize;
  53. return String(str);
  54. }
  55. bool operator==(String str)
  56. {
  57. if (this->size != str.size) return false;
  58. int i = 0;
  59. while (this->str[i] != '\0')
  60. {
  61. if (this->str[i] != str.str[i]) return false;
  62. i++;
  63. }
  64.  
  65. return true;
  66. }
  67.  
  68. friend String operator+(const String& str, const char& ch);
  69. friend String operator+(const char& ch, const String& str);
  70.  
  71. friend void print(String str);
  72. };
  73. String operator+(const String& str, const char& ch)
  74. {
  75. char* strNew = new char[str.size + 1];
  76. int i = 0;
  77. while (str.str[i] != '\0')
  78. {
  79. strNew[i] = str.str[i];
  80. i++;
  81. }
  82. strNew[i++] = ch;
  83. strNew[i++] = '\0';
  84.  
  85. return String(strNew);
  86. }
  87. String operator+(const char& ch, const String& str)
  88. {
  89. return str + ch;
  90. }
  91. void print(String str)
  92. {
  93. printf(str.str);
  94. }
  95. int main()
  96. {
  97. char strArr[] = "Hello";
  98. char strArr2[] = "Heo";
  99. String str(strArr);
  100. print(str + '\n');
  101.  
  102. str.RemoveAll ('l');
  103.  
  104. String str2(strArr2);
  105. if (str == str2)
  106. {
  107. printf("Strings \"");
  108. print(str);
  109. printf("\" and \"");
  110. print(str2);
  111. printf("\" are equal.");
  112. }
  113. int smth;
  114. std::cin >> smth;
  115. return 0;
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement