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

Текстовые файлы. Определить, в каком по счету предложении впервые встретилось заданное слово - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Классы cpp http://www.cyberforum.ru/cpp-beginners/thread1209141.html
У меня есть mystring.h Помогите пожалуйста исправить и дописать классы .cpp /*----------------/ mystring.h /---------------*/ /*#ifndef MYSTRING_H #define MYSTRING_H #ifndef COMPLEX_H
C++ Где можно узнать о типе HDC? Не подскажете, где можно узнать о типе HDC? http://www.cyberforum.ru/cpp-beginners/thread1209140.html
Каждый элемент матрицы увеличить на сумму элементов его строки C++
3. Дан массив 5х4 (элементы массивы задаются случайным образом). Каждый элемент соответствующей строки увеличить на сумму элементов этой строки.
C++ Увеличить в массиве все четные числа, содержащиеся в массиве, на исходное значение первого четного числа
2. Дан массив, состоящий из N элементов (количество элементов массива и элементы массива вводятся с клавиатуры). Увеличить все четные числа, содержащиеся в массиве, на исходное значение первого четного числа. Если четные числа в массиве отсутствуют, то оставить массив без изменений.
C++ Записи: вывести номера тех, у которых зачетные оценки по всем трем предметам http://www.cyberforum.ru/cpp-beginners/thread1209128.html
Дается список учеников с отметками о результатах по трем предметам. Требуется вывести номера тех, у которых зачетные оценки по всем трем предметам (зачетными считаются оценки не ниже тройки). #include<iostream> #include<fstream> #include<iomanip> using namespace std; ifstream in("input.txt"); ofstream out("output.txt");
C++ Решаем уравнение дано: х=2 q=4 функция: q=(++q\wedge x<<1)|(q&x++) сначала перевожу все в двоичный код получаю: x=2=0010 q=4=0100 подробнее

Показать сообщение отдельно
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
17.06.2014, 12:33     Текстовые файлы. Определить, в каком по счету предложении впервые встретилось заданное слово
MrGlaadkoff, в общем виде алгоритм может выглядеть как то так:
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
#include <algorithm>
#include <iostream>
#include <fstream>
#include <string>
 
template<typename iterator>
iterator FindWord(iterator begin, iterator end, std::string word)
{
    for (iterator it = begin; it != end; ++it)
        if (*it == word.front() && *(it + word.size()-1) == word.back())
            return it;
    return end;
}
 
bool Pred(const char& c) {
    return (c == '.' || c == '!' || c == '?' ? true : false);
}
 
int main()
{
    const std::string filename = "File.txt"; // файл
    std::ifstream ifs(filename);
 
    std::string word = "word"; // слово, которое нужно найти
    std::string allFileText;
 
    for (std::string s; !ifs.eof(); allFileText += s)
        std::getline(ifs, s);
    
    std::string::iterator it = FindWord(allFileText.begin(), allFileText.end(), word);
    
    if (it != allFileText.end())
    {
        int exp = std::count_if(allFileText.begin(), it, Pred);
        std::cout << "Found in " << exp + 1 << " exp. \n";
    }
    else
        std::cout << "word not found. \n";
 
    ifs.close();
 
    system("PAUSE");
    return 0;
}
он работает, но его очень легко обмануть. Так что дерзай.
 
Текущее время: 12:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru