Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <locale.h>
  3. using namespace std;
  4.  
  5. int my_strlen(char* str)
  6. {
  7. int i=0, simb_str = 0;
  8. while (i < 255)
  9. {
  10. if ((((int)str[i] <= 255) && ((int)str[i] >= 1)))
  11. {
  12. simb_str++;
  13. i++;
  14. }
  15. else break;
  16. }
  17. return simb_str;
  18. }
  19. /////////
  20. // //
  21. // //
  22. // //
  23. //////////
  24. // //
  25. // //
  26. // //
  27. /////////
  28. int soglglas( char* s)
  29. {
  30. char* s1 = s;
  31.  
  32. int i = 0;
  33. int sogl = 0, glas = 0, igriki=0;
  34.  
  35.  
  36.  
  37. for (int i = 0; i < my_strlen(s1); i++) // все к одному регистру
  38. {
  39. if (s1[i] >= 'A' && s1[i] <= 'Z')
  40. {
  41. s1[i] = s1[i]+32;
  42. }
  43. }
  44.  
  45. i = 0;
  46. int kol=0;
  47.  
  48. int poz;
  49.  
  50. while (i < my_strlen(s1)+1)
  51. {
  52. if (s1[i] == '1' || s1[i] == '2' || s1[i] == '3' ||
  53. s1[i] == '4' || s1[i] == '5' && s1[i] == '6' || s1[i] == '7' || s1[i] == '8' ||
  54. s1[i] == '9' || s1[i] == '0')
  55. {
  56. sogl = 0;
  57. glas = 0;
  58. for (poz = i; poz <= my_strlen(s1); poz++)
  59. {
  60. if ((s1[poz] != ' ' && s1[poz + 1] != ' ') )
  61. {
  62. i = poz;
  63. break;
  64. }
  65. }
  66. }
  67. if (((int)s1[i] != (int)' ' && (int)s1[i + 1] != (int)' ' ) || s1[i] != '\0') // подсчет гласных и согласних
  68. {
  69. /*подсчет согласных*/ if (((int)s1[i] <= 100 && (int)s1[i] >= 98) || ((int)s1[i] <= 104 && (int)s1[i] >= 102) ||
  70. ((int)s1[i] <= 110 && (int)s1[i] >= 106) || ((int)s1[i] <= 116 && (int)s1[i] >= 112) ||
  71. ((int)s1[i] <= 120 && (int)s1[i] >= 118) || (int)s1[i] == 122)
  72. sogl++;
  73. /*подсчет гласных*/ if ((int)s1[i] == 97 || (int)s1[i] == 101 || (int)s1[i] == 105 || (int)s1[i] == 111 || (int)s1[i] == 117)
  74. glas++;
  75. // /*подсчет игриков*/ if ((int)s1[i] == 121)
  76. // igriki++;
  77. }
  78. if ((((int)s1[i] == (int)' ' && (int)s1[i+1] != (int)' ' ) || s1[i] == '\0') && (sogl == glas) && sogl!=0)
  79. {
  80. kol++;
  81.  
  82. }
  83.  
  84. if ((((int)s1[i] == (int)' ' && (int)s1[i + 1] != (int)' ') || s1[i] == '\0'))
  85. {
  86. sogl = 0;
  87. glas = 0;
  88. }
  89. i++;
  90. }
  91.  
  92.  
  93. return kol;
  94. }
  95.  
  96. //\\
  97. // \\
  98. // \\
  99. // \\
  100. //========\\
  101. // \\
  102. // \\
  103.  
  104. char* my_strstr(char* str1,char* str2)
  105. {
  106.  
  107. char* cp = (char*)str1;
  108. char* s1, * s2;
  109.  
  110. if (!*str2)
  111. return((char*)str1);
  112.  
  113. while (*cp)
  114. {
  115. s1 = cp;
  116. s2 = (char*)str2;
  117.  
  118. while (*s1 && *s2 && !(*s1 - *s2))
  119. s1++, s2++;
  120.  
  121. if (!*s2)
  122. return(cp);
  123.  
  124. cp++;
  125. }
  126.  
  127. return 0;
  128.  
  129. }
  130. int main()
  131. {
  132.  
  133. setlocale(LC_ALL,".1251");
  134.  
  135. cout << "часть А" << endl;
  136. cout << "введите исходную строку" << endl;
  137. char str[255];
  138. cin.getline(str,255);
  139. cout << "введите искомую строку" << endl;
  140. char substr[255];
  141. cin.getline(substr,255);
  142.  
  143. int i = 0;
  144. int simb_sub=0, simb_str = 0;
  145. while (i<255)
  146. {
  147. if ((((int)substr[i] <= 255) && ((int)substr[i] >= 1)))
  148. {
  149. simb_sub++;
  150. i++;
  151. }
  152. else break;
  153. }
  154. i = 0;
  155. while (i < 255)
  156. {
  157. if ((((int)str[i] <= 255) && ((int)str[i] >= 1)))
  158. {
  159. simb_str++;
  160. i++;
  161. }
  162. else break;
  163. }
  164.  
  165.  
  166.  
  167. // cout << simb_str << " " << simb_sub << endl;
  168. cout<<my_strstr(str, substr)<<endl;
  169. cout << "часть В" << endl;
  170.  
  171. cout << "введите строку" << endl;
  172. char str1[255];
  173. cin.getline(str1, 255);
  174.  
  175. cout << soglglas(str1)<<endl;
  176.  
  177. return 0;
  178. }
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188. // if ( (((int)substr <= 90) && ((int)substr >= 65)) || ((((int)substr <= 122) && ((int)substr >= 97))) || ((((int)substr <= 57) && ((int)substr >= 48))) || (((int)substr <= 175) && ((int)substr >= 128)) || (((int)substr <= 241) && ((int)substr >= 224)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement