Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Zadanie2.cpp: определяет точку входа для консольного приложения.
- //
- /*
- 7. Дан текст.
- Группы символов, разделенные пробелами (одним или несколькими) и не
- содержащие пробелов внутри себя, будем называть, словами.
- а) Для каждого из слов указать, сколько раз оно встречается
- среди всех слов, образованных символами данного текста.
- б) Найти все слова, содержащие наибольшее количество
- гласных латинских букв (а, е, i, о, u).
- в)Найти все слова, в которых доля
- букв а, b максимальна.
- г) В тех словах, которые оканчиваются сочетанием
- букв ing, заменить это окончание на ed.
- */
- #include "stdafx.h"
- #include <iostream>
- #include <string>
- #include <cctype>
- #include <Windows.h>
- using namespace std;
- void obnul(char*str) {
- for (int i = 0; str[i] != '\0'; i++)
- str[i] = 0;
- }
- char a(char *text) {
- char buff[255]; obnul(buff); short j = 0; int slovo=0;
- //а) Для каждого из слов указать, сколько раз оно встречается
- //среди всех слов, образованных символами данного текста.
- for (int i=0; text[i] != '\0';++i) {
- //Перебираем весь массив до конца
- //Если не встретили пробел
- // И Пристваиваем буферу первое слово
- if (!isspace(text[i])||isalpha(text[i])) {
- buff[j] = text[i];
- j++;
- }
- //Если встретили пробел, а следующий элемент это не цифра или буква
- //Начинаем сравнивать буфер со всеми словами до конца
- else if (isspace(text[i])) {
- short n = 0;//счетчик буфера
- for (int k=0; text[k] != '\0'; ++k) {
- //Если текущий элем буфера равен элему текста=> size++
- if (buff[n] == text[k]&&buff[n]!='\0') {
- n++;
- continue;
- }
- //Если не равен и счетчик n=j => slovo++
- else if (buff[n] != text[k] && n == j) {
- slovo++;
- n = 0;
- }
- }
- cout << "Слов: " << buff << '=' << slovo << " штук"<<endl;
- obnul(buff);
- j = 0;
- slovo = 0;
- }
- }
- return 0;
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);//Ввод и вывод на консоли сделать русским
- char text[255]= ("There are two are two one this demo program ");
- cout << "Исходный текст:\----------------------\n"<<text<<endl;
- a(text);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement