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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Estale
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 20
#1

С++ Повторы слов!!! - C++

08.12.2009, 04:43. Просмотров 1532. Ответов 12
Метки нет (Все метки)

Помогите написать программу и примерно объяснить алгоритм. А то проболел все лекции по строкам, теперь не могу разобраться, хотя программа вроде несложная...

Повторы слов. Дан текст, содержащий n строк. Для каждого из слов указать, сколько раз оно встречается в тексте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2009, 04:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++ Повторы слов!!! (C++):

посчитать повторы слов - C++
помогите, пожалуйста, написать программу: Дан текст, содержайщий n строк. Для каждого из слов указать, сколько раз оно встречается в тексте.

очень надо!!доделать/переделать программу с текстовыми файлами(повторы слов) - C++
нужно упорядочить слова находящиеся в тексте по убыванию частоты.При этом различия в регистре не учитывать и делать с текстовыми...

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

Удалить повторы в списке l3 - C++
Добрый вечер! Помогите пожалуйста с программой, в общем необходимо удалить повторяющиеся элементы в односвязном списке, я написала такой...

Функции, повторы,корректировка кода - C++
как убрать при вводе "нет", вывод строки введите стороны квадрата.. #include "stdafx.h" #include "iostream" #include "string" void...

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

12
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
08.12.2009, 06:39 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <string.h>
 
/* CountSubLine:  считает в l количество sub */
long CountSubLine(const char *l, const char *sub)
{
    long n;
    
    if (!(l && sub && *l && *sub))
        return EOF;
    for (n = 0;
         (l = strstr(l, sub));
         n++, l += strlen(sub))
        ;
    return n;
}
Добавлено через 3 минуты
копируешь текст в память, создаёшь массив слов через strtok и для каждого слова применяешь функцию
вообще, задача на бинарное дерево
1
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
08.12.2009, 06:50 #3
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
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
#include <clocale>
 
const char* fname = "file.txt";
 
int main() {
    setlocale(LC_ALL, "rus");
 
    std::ifstream file(fname);
    if ( !file ) {
        std::cerr << "Ошибка открытия файла!" << std::endl;
        return 1;
    }
 
    std::vector<std::string> words_list((std::istream_iterator<std::string>(file)),(std::istream_iterator<std::string>()));
 
    std::vector<std::string>::iterator it = words_list.begin();
 
    for ( ; it != words_list.end(); ++it ) {
        int count = std::count(words_list.begin(), words_list.end(), *it);
        std::cout << "слово \""<< *it << "\" повторяется " << count << " раз." << std::endl;
    }
    return 0;
}
не забываем говорить спасибо.
1
Estale
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 20
08.12.2009, 12:26  [ТС] #4
Цитата Сообщение от niXman Посмотреть сообщение
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
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
#include <clocale>
 
const char* fname = "file.txt";
 
int main() {
    setlocale(LC_ALL, "rus");
 
    std::ifstream file(fname);
    if ( !file ) {
        std::cerr << "Ошибка открытия файла!" << std::endl;
        return 1;
    }
 
    std::vector<std::string> words_list((std::istream_iterator<std::string>(file)),(std::istream_iterator<std::string>()));
 
    std::vector<std::string>::iterator it = words_list.begin();
 
    for ( ; it != words_list.end(); ++it ) {
        int count = std::count(words_list.begin(), words_list.end(), *it);
        std::cout << "слово \""<< *it << "\" повторяется " << count << " раз." << std::endl;
    }
    return 0;
}
не забываем говорить спасибо.
Спасибо конечно, но тут никак не задействовано что текст содержит n строк и используется подключение доп файла... Можно как-то всё это проще сделать?



По идее код должен получится какой-то такой... Но выдаёт ошибку, подскажите, как устранить?

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
void main()
 {char txt[255],slv[255],xran[255][255];
  int i,len,flag,k;
  clrscr();k=0;
  printf("Text: \n");
  gets(txt);
  len=strlen(txt);
  for(i=0;i<len;i++)
   if ("%d",txt[i]==32)
     k++;
     strcpy(slv,txt,flag);
     for(i=flag;i<len;i++)
      if (strstr(txt,slv)!=NULL)
    k++;
     printf("slovo %s - %d raz\n",slv,k);
     k=0;"%d",slv[i]=0;
     
 
  getch();
 }
0
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
08.12.2009, 13:45 #5
Цитата Сообщение от Estale Посмотреть сообщение
тут никак не задействовано что текст содержит n строк
Не понял. Работа производится же со словами. В файле и есть n строк. Что не так?


Цитата Сообщение от Estale Посмотреть сообщение
и используется подключение доп файла.
А ты собираешься вручную слова вводить?
0
Estale
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 20
08.12.2009, 17:44  [ТС] #6
Цитата Сообщение от niXman Посмотреть сообщение
Не понял. Работа производится же со словами. В файле и есть n строк. Что не так?



А ты собираешься вручную слова вводить?
Ну вообще да... Нужно ввести слова и программа должна выдать сколько раз каждое слово найдено в тексте...
0
Estale
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 20
09.12.2009, 22:46  [ТС] #7
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
void main()
 {char txt[255],slv[255],xran[255][255];
  int i,len,flag,k;
  clrscr();k=0;
  printf("Text: \n");
  gets(txt);
  len=strlen(txt);
  for(i=0;i<len;i++)
   if ("%d",txt[i]==32)
     k++;
     strcpy(slv,txt,flag);                             // Тут выдаёт какую-то ошибку...
     for(i=flag;i<len;i++)
      if (strstr(txt,slv)!=NULL)
        k++;
     printf("slovo %s - %d raz\n",slv,k);
     k=0;"%d",slv[i]=0;
     
 
  getch();
}
Народ, ну помогите исправить ошибку-то!
0
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 206
09.12.2009, 22:50 #8
может
strcpy - может копировать только один массив ?!
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
09.12.2009, 22:51 #9
Estale, strcpy принимает всего два параметра
0
Лемур
0 / 0 / 0
Регистрация: 09.12.2009
Сообщений: 14
10.12.2009, 19:41 #10
а если нужно упорядочить слова находящиеся в тексте по убыванию частоты. различия в регистре не учитывать (делать с текстовыми документами)...
0
NeoPlan
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 2
10.12.2009, 20:54 #11
Цитата Сообщение от Лемур Посмотреть сообщение
а если нужно упорядочить слова находящиеся в тексте по убыванию частоты. различия в регистре не учитывать (делать с текстовыми документами)...
Народ....... помогите... та же ситуация... Заранее очень благодарен...
0
NeoPlan
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 2
12.12.2009, 20:03 #12
Помогите пожалуйста.... очень надо(((
0
Wekze
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 4
14.02.2011, 21:35 #13
Помогите бедным студентам)))
0
14.02.2011, 21:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2011, 21:35
Привет! Вот еще темы с ответами:

Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов - C++
мне нужна функция, которая во входе получает строку слов и рзделителей (&quot; &quot;, &quot;,&quot;, &quot;.&quot;, &quot;_&quot;, &quot;&quot;&quot;), а на выходе имеет массив слов из строки...

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

Создать список слов из файла и подсчитать количество повторения этих слов - C++
Здравствуйте. Помогите написать такую программу: в файле храниться текст. Нужно составить список слов из этого текста и посчитать частоту...

Дана последовательность слов. Найти кол-во слов начинающихся с d и кончающихся буквой w - C++
Кто может, помогите, пожалуйста. Использование указателей при работе со строками С++ Дана непустая последовательность слов из латинских...


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

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

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