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

Поиск слов в файле - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Осуществить вывод строк из файла, используя массив указателей на эти строки http://www.cyberforum.ru/cpp-beginners/thread151208.html
"Написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых. " вывод надо осуществлять с помощью массива указателей. #include <stdio.h> #include <iostream> #include <fstream> #include <clocale> using namespace std; void readf(int *pk, char** pSTRS, char fName,bool *flag1)
C++ Builder Как в функцию быстрой сортировки передать указатель на StringGrid? Доброго времени суток. Возник вопрос, как в функцию быстрой сортировки (метод Хоара), передать указатель на StringGrid. Хочу сделать сортировку в столбце, а вот как передать указатель, ни как понять не могу. void __fastcall TForm1::Button1Click(TObject *Sender) { QuickSort( , 0, StringGrid1->RowCount); } //--------------------------------------------------------------------------- int... http://www.cyberforum.ru/cpp-beginners/thread151201.html
Инкремент. Где ошибка C++
Привет, помогите плз с кодом, некорректный результат инкремента..( #include "stdafx.h" #include <iostream> using namespace std; class SimpleCircle { public: //конструкторы
C++ Добавить класс в программу
С классами совсем не знаком, поэтому обращаюсь к Вам) Требуется присутствие класса в коде. вот сам код: #include<conio.h> #include<stdio.h> #include<stdio.h>
C++ Си, использование вложенных файлов *.c http://www.cyberforum.ru/cpp-beginners/thread151152.html
Всем доброго времени дня! Вопрос: Пишу программу на C под Linux. есть файл main.c, в котором у меня располагается основное тело программы, функции итд... Но считаю это избыточным, хочу функции вывести в другой сишный файл, к примеру utils.c... Как использовать функции в utils.c вызывая их из main.c? В main.c делал #include <utils.c>, но не помогло...Прописывал в utils.c вначале все...
C++ Как именно округляются float и double? Вот имеется double l, функция sqrt из cmath и следующие формулы: sqrt(2-2*sqrt(1-l*l/4)) sqrt(l*l/4+1-sqrt(1-l*l/4)-sqrt(1-l*l/4)+1-l*l/4) sqrt(l*l/4+(1-sqrt(1-l*l/4))*(1-sqrt(1-l*l/4))) Если l длина стороны вписанного в круг с радиусом 1 правильного многоугольника с 2^n сторонами, то формула должна вычислить длину стороны вписанного в тот же круг правильного многоугольника с 2^{n+1}... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
03.07.2010, 06:13     Поиск слов в файле
о, как!
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
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <list>
#include <strings.h>
#include <cctype>
 
// искалка слова в строке незвисимо от регистра
class WordFinder {
    std::string m_word;
    std::string cutWord(const std::string & w){
        static const char * delim = ".,;:!?&@[]{}()|/\\";
        size_t start_pos = w.find_first_not_of(delim);
        if ( start_pos == std::string::npos )
            return std::string("");
        size_t end_pos = w.find_last_not_of(delim);
        return w.substr(start_pos, end_pos - start_pos + 1);
    }
public:
    WordFinder(const std::string & wrd) : m_word(wrd) {}
    bool testStr (const std::string & s) {
        std::istringstream ist(s);
        std::string buf;
        while ( ist >> buf )
            if ( ! strcasecmp(cutWord(buf).c_str(), m_word.c_str()) )
                return true;
        return false;
    }
};
 
int main(){
    std::string file_name;
    std::cout << "Enter name for input file: ";
    std::getline(std::cin, file_name);
    std::ifstream ifs(file_name.c_str());
    if ( ! ifs.is_open() ){
        std::cerr << "Can't open file for input" << std::endl;
        return 1;
    }
 
    std::list<std::string> list;
    std::string sentence("");
    char ch;
    bool inside = false;
    const std::string sentence_ends(".!?");
 
    while ( ifs.get(ch) ){
        if ( isspace(ch) ){
            if ( ! inside )
                continue;
            else if ( ch == '\n' )
                ch = ' ';
        }
        inside = true;
        sentence += ch;
        if ( sentence_ends.find(ch) != std::string::npos ){
            list.push_back(sentence);
            inside = false;
            sentence = "";
        }
    }
    ifs.close();
    if ( ! sentence.empty() )
        list.push_back(sentence);
 
    std::string wrd;
    std::cout << "Word to find: ";
    std::cin >> wrd;
    WordFinder wf(wrd);
    for ( std::list<std::string>::const_iterator i = list.begin(); i != list.end(); ++i )
        if ( wf.testStr(*i) )
            std::cout << *i << std::endl;
 
    return 0;
}
"папроще" не переделаю!
 
Текущее время: 13:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru