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

Программа подсчета количесва указанных слов в тексте - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
nick07x
2 / 2 / 0
Регистрация: 21.03.2011
Сообщений: 55
14.04.2011, 08:36     Программа подсчета количесва указанных слов в тексте #1
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
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
 
int main(void)
{setlocale(LC_ALL,"");
  ifstream infile("input.txt");
  
 string s1,s2;
   cout << "Введите 1 слово: ";
  cin >> s1;
  cout << "Введите 2 слово: ";
  cin >> s2;
  int Count = 0;
  string line;
  while(getline(infile,line))
  {
    char* p;
    p = strtok(const_cast<char*>(line.c_str())," ");
    if(((p)&&(strcmp(p,s1.c_str())==0)) || ((p)&&(strcmp(p,s2.c_str())==0)))
      Count++;
    while(p = strtok(NULL," "))
      if((strcmp(p,s1.c_str())==0)||(strcmp(p,s2.c_str())==0))
        Count++;
  }
  cout << "Слова встречаются всего " << Count <<" раз"<<endl;
    
  char* x;
  x= strtok(const_cast<char*>(line.c_str())," ");
  strcpy (x,s1.c_str());
  strcat (x," ");
  strcat(x,s2.c_str());
  /*cout<<"\n\n\n\n"<<x<<"\n\n";*/
  int Count2=0;
  while(getline(infile,line))
  {
    char* p;
    p = strtok(const_cast<char*>(line.c_str())," ");
    if((p)&&(strcmp(p,x)==0))
      Count2++;
    while(p = strtok(NULL," "))
      if(strcmp(p,x)==0)
        Count2++;
  }
  cout << "Друг за другом слова встречаются " << Count2 <<" раз"<<endl;
  _getch();
}
Программа должна считать количество указанных слов в тексте и количество, когда они встречаются непосредственно друг за другом. Количество раз, когда они идут друг за другом не считается. Еще хотелось бы чтобы программа работала и с текстом на русском языке. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 08:36     Программа подсчета количесва указанных слов в тексте
Посмотрите здесь:

Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? C++
C++ функция подсчета слов
C++ Программа, подсчитывающая частоту повторения слов в тексте
C++ Программа подсчета слов, база данна
C++ Программа, которая копирует содержимое входного файла в выходной; подсчитывает количество слов в тексте...
Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? C++
C++ Программа подсчета символов и слов в минуту
Программа подсчета строк, слов и символов не выводит результат C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nick07x
2 / 2 / 0
Регистрация: 21.03.2011
Сообщений: 55
20.04.2011, 19:39  [ТС]     Программа подсчета количесва указанных слов в тексте #2
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
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
 
int main(void)
{setlocale(LC_ALL,"");
  ifstream infile("input.txt");
  
 string s1,s2;
  cout << "Введите 1 слово: ";
  cin >> s1;
  cout << "Введите 2 слово: ";
  cin >> s2;
  int Count = 0;
  
  string line;
   
  
  while(getline(infile,line))
  {
    char* p;
    p = strtok(const_cast<char*>(line.c_str())," ");
    if(((p)&&(strcmp(p,s1.c_str())==0)) || ((p)&&(strcmp(p,s2.c_str())==0)))
      Count++;
    while(p = strtok(NULL," "))
      if((strcmp(p,s1.c_str())==0)||(strcmp(p,s2.c_str())==0))
        Count++;
  }
  cout << "Слова встречаются всего " << Count <<" раз"<<endl;
  
 
  int J=0;
  string s3;
      s3=s1;
 s3=s3+" ";
  for (int i =0; i<s2.size(); i++)
      s3=s3+s2[i];
  /*cout<<s3;*/
  while(getline(infile,line))
  {
    char* p;
    p = strtok(const_cast<char*>(line.c_str())," ");
    if((p)&&(strcmp(p,s3.c_str())==0))
      J++;
    while(p = strtok(NULL," "))
      if(strcmp(p,s3.c_str())==0)
        J++;
  }
  cout << "Друг за другом слова встречаются " << J <<" раз"<<endl;
 _getch();
}
Немного исправил программу, но не могу понять почему не считает количество встреч слов друг за другом.
Yandex
Объявления
20.04.2011, 19:39     Программа подсчета количесва указанных слов в тексте
Ответ Создать тему
Опции темы

Текущее время: 04:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru