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

Поиск и оптимизация в тексте. - C++

Восстановить пароль Регистрация
 
Blackberry91
Сообщений: n/a
04.04.2010, 21:40     Поиск и оптимизация в тексте. #1
Очень нужна ваша помощь.

Суть задания такова. Имеется текстовый файл, мы должны считать с него слова в вектор, и сделать множество заданий. Я практически все сдалала, осталось только реализовать поиск и метод оптимизации.

Я считывю текст из файла,разбиваю его на отдельные слова, и сортирую в алфовитном порядке.

Исходный файл:

Информация, Информационный! Инфантильный. Инфракрасный? Инфраструктура Информатика. Аркан Ящер.


Сортируем слова:

аркан
инфантильный
информатика
информационный
информация
инфракрасный
инфраструктура
ящер

Теперь мне надо примерно следующее:
1)Поиск

Поиск: фо
Результат:

информатика
информационный
информация

2)Оптимизация:

аркан
инфантильный
информатика
инфракрасный
ящер

Т.е. убираем слова, у которых первые 5 букв одинаковые, оставляя только первое.
Или может, например, проверять 75% слова, хотя наверное такое невозможно.

Большая проблема в том, что надо еще чтоб все по русски делалось, хотя строка system("chcp 1251 > nul"); и изменение в свойствах в консоли должно все исправить.

Вот обрубленый код, который считывает из файла, сортирует и сохраняет в другой файл.
Помогите его дополнить, плз , а то я уже запарилась.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <sstream>
#include <windows.h> //для кирилицы
using namespace std;
int main()
{
        setlocale(LC_ALL, "Russian");
        system("chcp 1251 > nul"); // для кирилицы
        vector<string> v;
        size_t index;
        string s, temp,file("1.txt"), punctuation("\',.:\"!?-");
        ifstream ifs(file.c_str());
        if(ifs==NULL)
        {
                cout << file << ": нет такого файла" << endl;
                return 1;
        }
        cout << "Исходный файл:\n" << endl;
        while(getline(ifs, temp))
        {
                cout << temp << endl;
                s+=temp + " ";
        }
        while((index=s.find_first_of(punctuation))!=string::npos)
                s.erase(index, 1);
        for(string::iterator it=s.begin(); it!=s.end(); ++it)
                *it=tolower(*it);
        stringstream sstream(s);
        while(sstream >> temp)
                if(find(v.begin(), v.end(), temp)==v.end())
                        v.push_back(temp);
        sort(v.begin(), v.end());
        cout << "\n\nСортируем слова:\n" <<endl;
        copy(v.begin(), v.end(), ostream_iterator<std::string>(cout, "\n"));
        string outfile("2.txt");
        ofstream ofs(outfile.c_str());
        copy(v.begin(), v.end(), ostream_iterator<string>(ofs, "\n"));
        return 0;    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2010, 21:40     Поиск и оптимизация в тексте.
Посмотрите здесь:

C++ Поиск слова в тексте.
Поиск в тексте C++
C++ Поиск слова в тексте
Поиск слова в тексте C++
Поиск слов в тексте C++
поиск слов в тексте C++
C++ Поиск букв в тексте
Поиск слов в тексте C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
18.04.2010, 16:51     Поиск и оптимизация в тексте. #2
могу накинуть как искать целое слово
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void poshyk()
 {
  for(int i=0;i<n;i++)
   {
   if(strcmp(s[i].slovo,text.slovo)==0)
//s[i].slovo - слово что считали из файла
//text.slovo - слово которое ввели
      {
       //
       .....
       //
      }
 }
}

а вот с кирилица ето проблема(
у меня такое же задание ...считать из файла инфу и вывести на екран ...
Yandex
Объявления
18.04.2010, 16:51     Поиск и оптимизация в тексте.
Ответ Создать тему
Опции темы

Текущее время: 16:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru