Advertisement
Milaj

Untitled

May 25th, 2016
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.91 KB | None | 0 0
  1. // Zadanie2.cpp: определяет точку входа для консольного приложения.
  2. //
  3. /*
  4. 7. Дан текст.
  5. Группы символов, разделенные пробелами (одним или несколькими) и не
  6. содержащие пробелов внутри себя, будем называть, словами.
  7. а) Для каждого из слов указать, сколько раз оно встречается
  8. среди всех слов, образованных символами данного текста.
  9. б) Найти все слова, содержащие наибольшее количество
  10. гласных латинских букв (а, е, i, о, u).
  11. в)Найти все слова, в которых доля
  12. букв а, b максимальна.
  13. г) В тех словах, которые оканчиваются сочетанием
  14. букв ing, заменить это окончание на ed.
  15. */
  16. #include "stdafx.h"
  17. #include <iostream>
  18. #include <string>
  19. #include <cctype>
  20. #include <Windows.h>
  21. using namespace std;
  22. void obnul(char*str) {
  23.     for (int i = 0; str[i] != '\0'; i++)
  24.         str[i] = 0;
  25. }
  26.  
  27. char a(char *text) {
  28.     char buff[255]; obnul(buff); short j = 0; int slovo=0;
  29.     //а) Для каждого из слов указать, сколько раз оно встречается
  30.     //среди всех слов, образованных символами данного текста.
  31.     for (int i=0; text[i] != '\0';++i) {
  32.         //Перебираем весь массив до конца
  33.         //Если не встретили пробел
  34.         // И Пристваиваем буферу первое слово
  35.         if (!isspace(text[i])||isalpha(text[i])) {
  36.             buff[j] = text[i];
  37.             j++;
  38.         }
  39.         //Если встретили пробел, а следующий элемент это не цифра или буква
  40.         //Начинаем сравнивать буфер со всеми словами до конца
  41.         else if (isspace(text[i])) {
  42.             short n = 0;//счетчик буфера
  43.             for (int k=0; text[k] != '\0'; ++k) {
  44.                 //Если текущий элем буфера равен элему текста=> size++
  45.                 if (buff[n] == text[k]&&buff[n]!='\0') {
  46.                     n++;
  47.                     continue;
  48.                 }
  49.                 //Если не равен и счетчик n=j => slovo++
  50.                 else if (buff[n] != text[k] && n == j) {
  51.                     slovo++;
  52.                     n = 0;
  53.                 }
  54.             }
  55.             cout << "Слов: " << buff << '=' << slovo << " штук"<<endl;
  56.             obnul(buff);
  57.             j = 0;
  58.             slovo = 0;
  59.         }
  60.     }
  61.     return 0;
  62. }
  63. int main()
  64. {
  65.     SetConsoleCP(1251);
  66.     SetConsoleOutputCP(1251);//Ввод и вывод на консоли сделать русским
  67.     char text[255]= ("There are two are two one this demo program ");
  68.     cout << "Исходный текст:\----------------------\n"<<text<<endl;
  69.     a(text);
  70.     system("pause");
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement