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

Количество вхождений слова в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос по контейнерам http://www.cyberforum.ru/cpp-beginners/thread246405.html
Если я сделать вот так: struct mag { char adr; int zarpl_za_den; std::vector<std::string> vect; std::unordered_map<std::string, int> mapmassiv; }mas; Т.е. помещу контейнеры map и vector в статический массив структур, то я не совсем представляю себе как работать с контейнерами?
C++ запись массива структур в файл Запись массива структур в файл так, что бы потом можно было считывать, удалять ненужные записи, добавлять, сортировать, поиск. Я пробовал такSostav mas; FILE *f; f=fopen("database.txt","ab+"); if (!f) { cout<<"Unable to open "<<file<<" for writing.\n"; return(1); http://www.cyberforum.ru/cpp-beginners/thread246402.html
дайте пожалуйста ссылку где скачать Turbo С++ C++
дайте пожалуйста ссылку где скачать Turbo С++
Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу C++
Люди, помогите!!! Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине - (1,1), следующий по величине – в позиции (2,2) и т.д., заполнив таким образом всю главную диагональ. Найти номер первой из строк, не содержащих не одного положительного элемента.
C++ Нарисовать фигуру (язык С) http://www.cyberforum.ru/cpp-beginners/thread246386.html
прямоугольник и сделать какую-то заливку цветную. заранее спс___)))
C++ Разделить число на дробную и целую часть как можно разделить число на дробную и целую часть void main() { long a1; // a1 = целая часть числла double a; // а число cout<<"Vvedite celoe chilso\n "; cin>>a; a1=a; а с отделением дробной части возникают проблемы:( подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2800 / 1576 / 246
Регистрация: 03.05.2010
Сообщений: 3,658
23.02.2011, 17:43     Количество вхождений слова в файл
Вот так считает не только без учета регистра, но и при наличии знаков препинания:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
///////////////////////////////////////////////////////////////////////////////////////// 
//Программа, которая определяет, сколько раз в текстовом файле, не содержащем 
//переносов слов, встречается заданное слово, вводимое с клавиатуры.
///////////////////////////////////////////////////////////////////////////////////////// 
#include <algorithm> 
#include <fstream> 
#include <iostream> 
#include <iterator> 
#include <locale> 
#include <string> 
#include <windows.h> 
///////////////////////////////////////////////////////////////////////////////////////// 
typedef std::string  T_str;
/////////////////////////////////////////////////////////////////////////////////////////
T_str  from_DOS(T_str  DOS_string)
{    
    char buf[1000000];   
    OemToCharA(DOS_string.c_str(), buf);
    return buf;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
 
    for(;;)
    {
        T_str  filename("text.txt");
        std::ifstream  fin(filename.c_str());
        if(!fin) 
        {
            std::cout << "Ошибка открытия файла "
                      << filename
                      << "." 
                      << std::endl;
            exit(0);
        }
 
        std::cout << std::endl
                  << std::endl
                  << std::endl
                  << "Введите слово для поиска: ";
        T_str  DOS_word_for_count;
        getline(std::cin, DOS_word_for_count); 
        if(DOS_word_for_count.empty())  break;
        T_str  word_for_count(from_DOS(DOS_word_for_count));
 
        struct  T_word_eq_without_match_case_and_puncts
        {            
            T_str  word_for_count_;
            //---------------------------------------------------------------------------
            T_word_eq_without_match_case_and_puncts(const T_str&  word_for_count) 
                : word_for_count_(word_for_count)
            {}
            //---------------------------------------------------------------------------
            struct  T_rus_symb_comp_without_match_case
            {
                bool  operator() (char L, char R)
                {
                    return tolower(L, std::locale("")) == tolower(R, std::locale(""));
                }        
            };
            //---------------------------------------------------------------------------
            bool  operator() (T_str  word_cur)
            { 
                while(std::ispunct(word_cur[0], std::locale("")))
                {
                    word_cur.erase(0, 1);
                }
                          
                while(std::ispunct(word_cur[word_cur.size() - 1], std::locale(""))) 
                {
                    word_cur.erase(word_cur.size() - 1);
                }
 
                return    word_cur.size() == word_for_count_.size()
                       && std::equal(word_cur.begin(), word_cur.end(), word_for_count_.begin(), 
                                     T_rus_symb_comp_without_match_case());
            }
        };//struct  T_word_eq_without_match_case_and_puncts
        
        std::istream_iterator<T_str>  fit_beg(fin);
        std::istream_iterator<T_str>  fit_end;
 
        int  word_count = std::count_if(fit_beg, fit_end, 
                                        T_word_eq_without_match_case_and_puncts(word_for_count));
 
        std::cout << "В файле "
                  << filename
                  << " слово \""
                  << word_for_count
                  << "\" встречается "
                  << word_count
                  << " раз."
                  << std::endl;      
    }//for
}
 
Текущее время: 22:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru