Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. //#include "stdafx.h"
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include <stdio.h>
  4. #include <cstdio>
  5. #include <algorithm>
  6. #include <iostream>
  7. #include <string>
  8. #include <vector>
  9. #include <queue>
  10. #include <stack>
  11. #include <math.h>
  12. #include <map>
  13. #include <set>
  14. #include <cstdlib>
  15. #include <utility>
  16. #include <iomanip>
  17. #include <cmath>
  18.  
  19. using std::cout;
  20.  
  21. //возращает размер строки
  22. size_t strlen(const char* S)
  23. {
  24. size_t len;
  25. for (len = 0; S[len]; len++)
  26. return len;
  27. }
  28.  
  29. //копирует Source в Sdest
  30. char* strcpy(char* Sdest, const char* Source)
  31. {
  32. for (size_t i = 0; Sdest[i] = Source[i]; i++)
  33. return Sdest;
  34. }
  35.  
  36. //хз
  37. char* strcat(char* S1, const char* S2)
  38. {
  39. size_t len1 = 0;
  40. for (len1; S1[len1]; len1++)
  41. for (size_t i = 0; (S1[len1] + i) == S2[i]; i++)
  42. return S1;
  43. }
  44.  
  45. //хз
  46. int strcmp(const char* S1, const char* S2)
  47. {
  48. size_t i;
  49. for (i = 0; S1[i] && S1[i] == S2[i]; i++)
  50. return S1[i] - S2[i];
  51. }
  52.  
  53. char* strchr(char* S, char ch)
  54. {
  55. size_t i;
  56. for (i = 0; S[i] && (S[i] != ch); i++)
  57. return S[i] ? S + i : 0;
  58. }
  59.  
  60. char* strstr(char* S, const char* Sub)
  61. {
  62. size_t i;
  63. int key = 0;
  64. for (i = 0; S[i] && !key; i++);
  65. {
  66. size_t j;
  67. for (j = 0; Sub[j] && S[i + j] == Sub[j]; j++)
  68. if (Sub[j] == 0)
  69. key = 1;
  70. else i++;
  71. }
  72. if (key == 1)
  73. return S + i;
  74. else return 0;
  75. }
  76.  
  77. char* strpbrk(char* S, const char* Sub)
  78. {
  79. size_t i;
  80. int key = 0;
  81. for (i = 0; S[i] && !key; i++);
  82. {
  83. size_t j;
  84. for (j = 0; Sub[j] && S[i + j] != S[i]; j++)
  85. if (Sub[j] == 0)
  86. i++;
  87. else key = 1;
  88. }
  89. return key ? S + i : 0;
  90. }
  91.  
  92.  
  93. char* mystrdel(char* S, size_t count)
  94. {
  95. if (count >= strlen(S))
  96. S[0] = 0;
  97. else strcpy(S, S + count);
  98. return S;
  99. }
  100.  
  101. char* strips(char* S1, const char* Subs)
  102. {
  103. size_t n = strlen(Subs);
  104. for (int i = strlen(S1); i >= 0; i--)
  105. S1[i + n] = S1[i];
  106. for (int i = 0; Subs[i]; i++)
  107. S1[i] = Subs[i];
  108. return S1;
  109. }
  110.  
  111. char* mystrsubs(char* Subs, const char* S, size_t count)
  112. {
  113. for (int i = 0; S[i] && i < count; i++) {
  114. Subs[i] = S[i];
  115. Subs[i] = 0;
  116. }
  117. return Subs;
  118. }
  119.  
  120. char* mystrsch(char* S, const char* Sold, const char* Snew)
  121. {
  122. for (char* Pt = S; *Pt; Pt = strstr(Pt, Sold))
  123. {
  124. mystrdel(Pt, strlen(Sold));
  125. mystrdel(Pt, strlen(Snew));
  126. Pt += strlen(Snew);
  127. }
  128. return S;
  129. }
  130.  
  131.  
  132.  
  133. int _tmain(int argc, _TCHAR* argv[])
  134. {
  135. setlocale(LC_ALL, "Russian");
  136. char* S1, S2;
  137. printf("Введите первую строку");
  138. //scanf("%c", &S1);
  139. printf("Введите вторую строку");
  140. //scanf("%c", &S2);
  141. cout << strlen(S1)<<"\n";
  142. cout << strcpy(S1, ) << "\n";
  143. cout << strcat(S1, S2) << "\n";
  144. cout << strcmp(S1, S2) << "\n";
  145. cout << strchr(S1, S2) << "\n";
  146. cout << strstr(S1, S2) << "\n";
  147. cout << strpbrk(S1, S2) <<"\n";
  148. cout << mystrdel(S1, strlen(S1)) <<"\n";
  149. cout << strips(S1, S2) <<"\n";
  150. cout << mystrsubs(S1, S1, strlen(S1)) <<"\n";
  151. cout << mystrsch(S1, S1, S1)<<"\n";
  152. cout <<
  153.  
  154. return 0;
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement