Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
nick07x
3 / 3 / 0
Регистрация: 21.03.2011
Сообщений: 55
#1

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

14.04.2011, 08:36. Просмотров 1430. Ответов 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();
}
Программа должна считать количество указанных слов в тексте и количество, когда они встречаются непосредственно друг за другом. Количество раз, когда они идут друг за другом не считается. Еще хотелось бы чтобы программа работала и с текстом на русском языке. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 08:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа подсчета количесва указанных слов в тексте (C++):

Программа подсчета слов, база данна - C++
#include &quot;stdafx.h&quot; #define YES 1 #define NO 0 main() /* count lines, words, chars in input */ { int c, nl,...

Программа подсчета символов и слов в минуту - C++
Пытаюсь написать программу для подсчёта слов и символов в минуту Но проблема в том , что не знаю как устроен таймер, как сделать так,...

Программа для подсчета частоты вхождения слов - C++
Программа считает частоту вхождений слов, но есть небольшой нюанс. Слова типа (&quot;как-то&quot;) выводит как два отдельных слова, как и то, Тире не...

Программа для подсчета частоты вхождения слов - C++
Доброго времени суток. Недавно помогли &quot;сворганить&quot; програмку для подсчета частоты вхождения слов из текстового файла: #include...

Программа для подсчета уровня частоты вхождений слов - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;map&gt; #include &lt;fstream&gt; using namespace std; int main() { map...

Программа для подсчета уровня частоты вхождений слов - C++
Есть программа для вывода слов из текстового файла, и подсчета их количества. Проблема в том что она выводит всё подряд, а требуется только...

1
nick07x
3 / 3 / 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();
}
Немного исправил программу, но не могу понять почему не считает количество встреч слов друг за другом.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2011, 19:39
Привет! Вот еще темы с ответами:

Программа подсчета строк, слов и символов не выводит результат - C++
Читаю книгу по с++ и там есть пример такой задачи. Когда запускаю ее то она ничего не выводит. В чем проблема? #include &lt;stdio.h&gt; ...

Программа, подсчитывающая частоту повторения слов в тексте - C++
Разработать программу, подсчитывающую частоту повторения в тексте слов и печатающую слова в порядке уменьшения их частоты. Распечатать...

Программа, которая копирует содержимое входного файла в выходной; подсчитывает количество слов в тексте... - C++
Написать программу, которая копирует содержимое входного файла в выходной; подсчитывает количество слов в тексте; выделяет слово,...

функция подсчета слов - C++
Здравствуйте! Помгите исправить ошибку в функции подсчета слов оканчивающихся на символ Пркатически все варианты пробывал но ничего...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru