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

Программа, подсчитывающая частоту повторения слов в тексте - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ изменение реестра http://www.cyberforum.ru/cpp-beginners/thread331909.html
Помогите плиз в некоторых книгах, сайтах, но не нашел:( Как по пути реестра hklm\SYSTEM\CurrentControlSet\Control\Session Manager изменить параметр BootExecute на ""? Припомощи C++
C++ шаблоны оператор присваивания здраствуйте! надо по заданию накатать стек с таким оператором присваивания, чтобы можно было приравнивать стеки разных типов, если конечно преобразование возможно template <typename T, typename C = std::vector<T> > class stack { C elems; public: T top() const; void pop(); void push(T const&); http://www.cyberforum.ru/cpp-beginners/thread331904.html
C++ заголовочные файлы в с++
я вот не могу понять, их обязательно делать в своих программах? В том смысле, что бы код был, так сказать "правильным, хорошим". Хотел спросить сразу на примере, стоит ли тут часть кода выносить в заголовочный файл: #include <iostream> #include <string> #include <sstream> #include <algorithm> #include <iterator> #include <vector> using namespace std;
рекурсия C++
Помогите,пожалуйста, изменить рекурсивную ф-цию.сразу прошу не пугаться размера программы, весь код привожу для возможности отладки, проблема у меня в функции FindEmptyPointer. из-за нее дерево строится в виде, изображенном на рисунках (на клеточке - нижний рисунок и первый рисунок отображают как есть) а необходимо, как на верхнем, тоесть добавлять узлы в один список, пока тот не закончится,...
C++ Урок \n http://www.cyberforum.ru/cpp-beginners/thread331887.html
Помогите что, не так с кодом вот (описание ошибки снизу)... // Эта программа демонстрирует \n последовательность.cpp: главный файл проекта. // которая обеспечивает переход на новую строку. #include "stdafx.h" #include <iostream> setlocale(LC_CTYPE, "Russian"); using namespace std;
C++ поиск разрядов в двухбайтовых словах Дан файл состоящий из двубайтовых слов,количество слов=4096(или он равен 8192 байта) C начало(начиная с первого слова) надо искать в 14 разряде еденицу(перебирая слова по очереди)как только еденица-стоп, затем с этого слова ищем 1-цу в 16 разряде также перебирая слова и ведём подсчёт этих слов одновременно, как только 1-ца в 16 разряде-стоп. Заранее благадарю Дублирование тем запрещено... подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
23.07.2011, 16:07     Программа, подсчитывающая частоту повторения слов в тексте
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
74
75
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
 
#define WORDLEN 50
#define MAXWORD BUFSIZ
#define DELIM " \t\n,.:;!?"
 
typedef struct {
    char word[WORDLEN];
    int count;
}map;
 
void init_struct(map*);
void for_each(map*, map*, void(*)(map*));
int already_have(char*);
int getsize();
int mysort(const void*, const void*);
void print(map*);
 
map arr[MAXWORD];
 
int main(){
    int i;
    char buf[MAXWORD*WORDLEN], *ptr;
    for_each(arr,arr+MAXWORD,init_struct);
    puts("Enter string: ");
    fgets(buf, 255, stdin);
    for (i=0,ptr = strtok(buf, DELIM) ;ptr != NULL; ptr = strtok(NULL, DELIM)){
        int n;
        if((n=already_have(ptr))!=-1)
            arr[n].count++;
        else {
            strcpy(arr[i].word,ptr);
            arr[i++].count++;
        }
    }
    qsort(arr,getsize(),sizeof(map),mysort);
    for_each(arr,arr+getsize(),print);
 
    return 0;
}
 
 
void init_struct(map* st){
    memset(st->word,0,WORDLEN);
    st->count=0;
}
 
void for_each(map* from, map* to, void(*f)(map*)){
    while(from<to)
        f(from++);
}
 
int already_have(char *p){
    int i;
    for(i=0;i<MAXWORD;i++)
        if(!strcmp(arr[i].word,p))
            return i;
    return -1;
}
 
int getsize(){
    int i=0;
    while(arr[i].count!=0)++i;
    return i;
}
 
int mysort(const void *one, const void *two){
    return ((map*)(one))->count-((map*)(two))->count;
}
 
void print(map *st){
    printf("%s - %d\n",st->word,st->count);
}
 
Текущее время: 15:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru