PDA

Просмотр полной версии : [Помогите!] Поиск в файле


Лесоруб
10.02.2011, 00:34
Подскажите, с помощью какой функции можно определить, сколько раз заданное с клавиатуры слово встречается в файле?

Лесоруб
26.02.2011, 23:00
накатал, вроде пашет, только как реализовать, чтобы поиск проходил без учета регистра?

#include "stdafx.h"

using namespace std;


int main()
{
const int len = 255;
char word[len], line[len];
int branch;
setlocale(LC_ALL, "Russian");

do
{
cout << "Введите слово для поиска: ";
cin >> word;
int l_word = strlen(word);
ifstream fin ("text.txt");
if (!fin)
{
cout << "Ошибка открытия файла." << endl;
return 1;
}

int count = 0;

while (fin.getline(line, len))
{
char *p = line;

while(p=strstr(p, word))
{

char *c=p;
p+=l_word;

if(c!=line)
if (!ispunct(*(c-1)) && !isspace(*(c-1)))
continue;
if (ispunct(*p) || isspace(*p) || (*p == '\0'))
count++;
}
}
cout << endl << "Слово " << word << " встретилось в файле " << count << " раз(а)." << endl;
cout << "\nЧтобы продолжить поиск, нажмите '1'. Чтобы выйти из программы, нажмите '2'.\n";
cin >> branch;
}

while(branch!=EOF);
return 0;
}

Cherinho
28.02.2011, 19:07
без учета регистра,алгоритм такой можешь сделать:считай файл,потом преобразуй его к нижнему/верхнему регистру.потом нужную строку к тому же регистру,и ищи :)