Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2011, 14:45   #1
Jurek
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 10
По умолчанию С++ Программа : Нужно посчитать сколько раз встречается в отдельном файле данной папки вписанное слово ил

Программа заключается в следующем:

Нужно посчитать сколько раз встречается в отдельном файле данной папки вписанное слово или фрагмент слова


прошу о помощи!

заранее спасибо
Jurek вне форума Ответить с цитированием
Старый 17.01.2011, 15:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А наработки есть какие?
Про функцию fread что знаешь? Умеешь ее использовать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2011, 18:31   #3
Jurek
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 10
По умолчанию

нароботок ещё нет

с этой функцией работал не много
Jurek вне форума Ответить с цитированием
Старый 22.01.2011, 19:11   #4
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

fread это функция и C. А автор изучает C++.
Я бы на C++ написал так:
Код:
#include <fstream>
#include <iterator>
#include <iostream>
#include <string>
#include <algorithm>
int count_words_in_file(const std::string &fname, const std::string &word)
{
    std::ifstream f(fname.c_str());
    return std::count(std::istream_iterator<std::string>(f), std::istream_iterator<std::string>(), word);
}
int main()
{
    std::cout << "apple found " << count_words_in_file("test.txt", "apple") << " times." << std::endl;
}
Это на тот случай, если автор не изучал толком работу с текстом в C, но более-менее хорошо разбирается в C++. Я из таких.

Автор, ты как-нибудь с файлами работал? Со строками?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 22.01.2011 в 21:20.
Obey-Kun вне форума Ответить с цитированием
Старый 23.01.2011, 02:01   #5
Jurek
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 10
По умолчанию

вот только перед самой сессией взяли, препод показал, а толком ничего не объяснил! а проекты раздал!
Jurek вне форума Ответить с цитированием
Старый 23.01.2011, 09:57   #6
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

Код:
простейший вариант:
#include <iostream>
#include <fstream>

using namespace std;

int main(){
char slovo[65],poisl[65,filename[100];
int kolich=0;
cout<<"Введите путь к файлу: ";
 cin>>filename;
cout<<"Введите искомое слово: ";
 cin>>poisk;

ifstream input(filename);

if (input.fail()){cout<<"open file ERROR";return 1;}

while(!input.eof()){
input>>slovo;
(strstr(slovo,poisk))?kolich++:0;
}

cout<<"Количество вхождений данного слова в тексте: "<<kolich<<endl;

}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery

Последний раз редактировалось kaljan775; 23.01.2011 в 17:44.
kaljan775 вне форума Ответить с цитированием
Старый 21.02.2011, 14:28   #7
Jurek
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 10
По умолчанию

что то не работает! подскажите в чём ошибка
Jurek вне форума Ответить с цитированием
Старый 20.04.2014, 22:12   #8
Physist_Minsk
 
Регистрация: 06.04.2014
Сообщений: 4
По умолчанию

Obey-Kun, очень грамотный код. В книге Кёнига дан следующий алгоритм решения данной проблемы, но в Билдере он считает какую-то ахинею (Здесь практикуется использование Pairs):
Код:
int main()
{
string s;
map<string, int> counters;
// store each word and an associated counter
// read the input, keeping track of each word and how often we see it
  while (cin >> s)
    ++counters[s];
// write the words and associated counts
  for (map<string, int>::const_iterator it = counters.begin();
    it != counters.end(); ++it) {
  cout << it->first << "\t" << it->second << endl;
}
return 0;
}
Physist_Minsk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP.Как посчитать, сколько раз слово встречается в файле? Princesse Помощь студентам 0 07.12.2009 00:24
Сколько раз слово встречается в строке ksu25 Паскаль, Turbo Pascal, PascalABC.NET 1 25.09.2009 15:53
сколько раз заданное слово встречается в данной строке pascal1994 Помощь студентам 4 04.02.2009 08:41
сколько разних слово встречается в данной строке pascal1994 Помощь студентам 3 04.02.2009 04:16
Сколько раз встречается данное слово n1k1c4 Помощь студентам 4 13.12.2007 20:33