Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

В текстовом файле найти все устойчивые словосочетания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не отрабатывает if http://www.cyberforum.ru/cpp-beginners/thread1064270.html
//--------------------------------------------------------------------------- #include <vcl.h> #include <iostream.h> #include <stdio.h> #include <math.h> #include <conio.h> #pragma hdrstop ...
C++ Вводим число в 8-ричной системе, получаем его же, но в двоичной #include <iostream> #include <conio.h> using namespace std; int main() { int a = 0; cin>>oct>>a; cout<<dec<<a<<endl; http://www.cyberforum.ru/cpp-beginners/thread1064257.html
Протабулировать функцию C++
Вот есть функция и задание. Значение аргумента х изменяется от а до b с шагом h. Для каждого х найдите значение функции Y(x), суммы S(x) и | Y (x) – S(x) | - и выведите в виде таблицы. Значения а,...
C++ В магазине для пересылки по почте подготовлено 60 книг. Посылки комплектующих по 10, 15 и 20 книг. Получить все возможные варианты комплектов
написать 3 программы, используя все виды цикла(вайл, ду вайл, фор) В магазине для пересылки по почте подготовлено 60 книг. Посылки комплектующих по 10, 15 и 20 книг. Получить все возможные варианты...
C++ Библиотека STL. Функции для чтения дерева каталогов диска http://www.cyberforum.ru/cpp-beginners/thread1064196.html
какие функции можно использовать для след. задания: "Реализовать программу, считывающую дерево каталогов диска" тема лабы «Исследование STL для работы с файлами»
C++ Нормальное распределение Всем доброго времени суток! Суть программы заключается в том, что в файле есть какие-то статистические данные в виде матрицы (в моем случае это показатели рождаемости). Как я понимаю, они будут типа... подробнее

Показать сообщение отдельно
senich
61 / 61 / 23
Регистрация: 22.11.2012
Сообщений: 242
Записей в блоге: 1
06.01.2014, 21:00
Ваш алгоритм находит словосочетания только определённой длины. Лучше, если мы будем брать сначала 1 первое слово, потом 1 и 2, до тех пор, пока кол-во вхождений этих слов больше 2. Если кол-во вхождений больше 2 и кол-во слов больше 1, то заносим их в массив словосочетаний. Рассмотренные слова удаляем.
Деление текста на слова:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
vector<string> words;
  string buf="", separators=" .?!-;,:", text;
  cout<<"Enter text:"<<endl<<"->";
  getline(cin, text);
  text+=" ";
  for(int i=0; i<text.length(); i++){
    if(separators.find(text[i])==-1)
      buf+=text[i];
    else if(buf.empty()!=1){
      words.push_back(buf);
      buf.clear();
    }
  }
Добавлено через 6 минут
Добавил комментарии.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
vector<string> words;//массив слов
  string buf="", separators=" .?!-;,:", text;
  cout<<"Enter text:"<<endl<<"->";
  getline(cin, text);
  text+=" ";
  for(int i=0; i<text.length(); i++){
    if(separators.find(text[i])==-1)//Если символ- не разделитель
      buf+=text[i];//то увеличиваем буфер
    else if(buf.empty()!=1){//если символ-разделитель, и буфер не пуст, тогда
      words.push_back(buf);//добавляем слово в массив слов
      buf.clear();//очищаем буфер
    }
  }
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru