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

Построить список слов, который есть в заданном тексте. Определить сколько раз встречается каждое слово в этом тексте. - C++

Восстановить пароль Регистрация
 
Babochka_
 Аватар для Babochka_
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 54
02.06.2013, 17:26     Построить список слов, который есть в заданном тексте. Определить сколько раз встречается каждое слово в этом тексте. #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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <fstream>
#include <string.h>
#define N 80
 
using namespace std;
struct list
  {
    char word[N];
    list *next; 
  };
  
  list* push_front(list *root, char word[N] )         //добавляет элемент в начало списка
     {
        list *p;
        p = new list;
        
         for(int i = 0; i < N; i++)
        {
          p->word[i] = word[i];
          p->next = root;                       
        }
        return p;
     }
  
  int main()
  {
    setlocale (0,""); // подключаем русский язык
    char p[N]; // вводимая строка
    list *root ;
    root = 0;
    int moda[N]; // массив счетчиков
    int n = 0;
        cout << "\nВведите текст: \n";
        gets(p);
    char *word  = strtok (p," ,.-"); 
    
while (word != NULL)  
    {
             root = push_front(root,word );
            for(int i = 0; word[i] = '\0'; i++)
               {
                if(!(strcmp(root->word, word)))
                  {
                    n++;
                    moda[i] = n;
                  }
                 n = 0;  
               }
             root = root->next; 
             word = strtok (NULL, " ,.-");
      
     }
        cout<<endl;
        int Max = moda[0];
        while(root)
        {
           for(int i = 0; i < N; i++)
              {
                cout <<root -> word << " - "<< moda[i] <<endl;
                root->next;
                 if(moda[i] > Max)
                   {
                     Max = moda[i];
                      n = i;
                   }
                
              }
        }
             
  system ("Pause");
  return 0;  
  }
Мне кажется, что проблема может быть в strcmp(), вроде бы по идее должно работать не понимаю в чем ошибка. Помогите пожалуйста)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 17:26     Построить список слов, который есть в заданном тексте. Определить сколько раз встречается каждое слово в этом тексте.
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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