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

Поиск слов в тексте - C++

Восстановить пароль Регистрация
 
Татьяна19
0 / 0 / 0
Регистрация: 08.05.2012
Сообщений: 25
09.10.2012, 20:33     Поиск слов в тексте #1
всем добрый вечер помогите написать програмку кторая будет искать одинаковые слова в тексте(например будет октябрь сентябрь октябрь декабрь фераль декабрь ну и вывело что то такое <повторяющиеся_слова:октябрь -2раза декабрь -2раза)
из всего что нужно я только знаю как открыть файл и все
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
#include <fstream.h>
#include<conio.h>
main()
{
char a[256] ;
ifstream input("c:/text.txt", ios::in | ios::out);
while (!input.eof())
{
input>>a;
cout<<a<<endl;
}
input.close();
getch ();
return 0;
}
Может есть у кого какие мысли?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.10.2012, 21:06     Поиск слов в тексте #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Мысли есть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;
 
int main()
{
    map <string,int> words;
    ifstream in;
    in.open("in.txt");
    string word;
    while (in>>word)
        words[word]++;
    cout<<"Words count:"<<endl;
    for (auto cur=words.begin(); cur!=words.end(); cur++)
        cout<<(*cur).first<<": "<<(*cur).second<<endl;
    system("pause");
    return 0;
}
Татьяна19
0 / 0 / 0
Регистрация: 08.05.2012
Сообщений: 25
09.10.2012, 21:11  [ТС]     Поиск слов в тексте #3
а могли бы вы пояснить что тут что выполняет
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
09.10.2012, 21:41     Поиск слов в тексте #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Да что тут пояснять, и так все ясно. Вот кое что закоментировал:
открыть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;
 
int main()
{
    map <string,int> words; 
    ifstream in;
    in.open("in.txt");
    string word;
    while (in>>word) // считывается слово за словом с файла пока не будет достигнут конец файла
        words[word]++; // закидываем считанное слово в карту и инкриментируем связанную с ним переменную int
                                      //таким образом и считаем одинаковые слова
    cout<<"Words count:"<<endl;
    for (auto cur=words.begin(); cur!=words.end(); cur++)  // обычный цикл вывода елементов карты через итератор
        cout<<(*cur).first<<": "<<(*cur).second<<endl;  // выводится первый и второй члены карты
    system("pause");
    return 0;
}
Yandex
Объявления
09.10.2012, 21:41     Поиск слов в тексте
Ответ Создать тему
Опции темы

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