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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 5.00
koc94ok
9 / 9 / 1
Регистрация: 22.04.2010
Сообщений: 505
#1

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

22.04.2010, 20:48. Просмотров 3231. Ответов 11
Метки нет (Все метки)

Посчитать сколько слов, содержит текст поисзвольной длины. Разделителем между словами является символ пробела. Вывести на экран список всех встречающихся в тексте слов и их количество. Указание: использовать связный список.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2010, 20:48     Посчитать, сколько слов содержит текст произвольной длины.
Посмотрите здесь:
Посчитать, сколько слов содержит строкв C++
C++ Посчитать количество слов в указанном предложении и определить, содержит ли заданный текст Вашу фамилию
3. Ввести строку произвольной длины. Сосчитать количество слов в ней. C++
Построить диаграмму длины слов, входящих в текст, содержащий от 5 до 10 слов. C++
C++ Дан текст произвольной длины, оканчивающийся точкой с запятой. Подсчитать количество цифр в тексте
C++ Посчитать сколько двоичных единиц содержит каждое число
C++ Посчитать количество слов равной длины в файле
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lex1990able
2 / 2 / 1
Регистрация: 22.04.2010
Сообщений: 37
22.04.2010, 21:16     Посчитать, сколько слов содержит текст произвольной длины. #2
да это же моя лаба за первый курс
если тебе повезёт - то найду код
koc94ok
9 / 9 / 1
Регистрация: 22.04.2010
Сообщений: 505
23.04.2010, 15:52  [ТС]     Посчитать, сколько слов содержит текст произвольной длины. #3
Цитата Сообщение от lex1990able Посмотреть сообщение
да это же моя лаба за первый курс
если тебе повезёт - то найду код
нашел?
delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
23.04.2010, 16:20     Посчитать, сколько слов содержит текст произвольной длины. #4
считывай вводимый код в строку чар и там считай количество не подряд идущих пробелов. +1 и это твой ответ
koc94ok
9 / 9 / 1
Регистрация: 22.04.2010
Сообщений: 505
23.04.2010, 16:32  [ТС]     Посчитать, сколько слов содержит текст произвольной длины. #5
Цитата Сообщение от delfamur Посмотреть сообщение
считывай вводимый код в строку чар и там считай количество не подряд идущих пробелов. +1 и это твой ответ
это уже можно сказать сделал но как видиш требуется не только это
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
23.04.2010, 17:37     Посчитать, сколько слов содержит текст произвольной длины. #6
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef struct WRD {
    char *buf;
    size_t cnt;
    struct WRD *next;
} wrd_t;
 
wrd_t *newWrd(const char *s, wrd_t *last){
    wrd_t *nw;
    if ( ( nw = (wrd_t*)malloc(sizeof(wrd_t)) ) == NULL )
        return NULL;
    if ( ( nw->buf = strdup(s) ) == NULL ){
        free(nw);
        return NULL;
    }
    nw->cnt = 1;
    nw->next = NULL;
    if ( last )
        last->next = nw;
    return nw;
}
 
void clrWrd(wrd_t *w){
    wrd_t *t;
    while ( w ){
        t = w->next;
        free(w->buf);
        free(w);
        w = t;
    }
}
 
wrd_t *findWrd(const wrd_t *w, const char *s){
    if ( !w || !s )
        return NULL;
    while ( w ){
        if ( !strcmp(w->buf, s) )
            break;
        w = w->next;
    }
    return (wrd_t*)w;
}
 
void prnWrd(const wrd_t *w){
    printf("------------------------------\n");
    printf("Word                Count\n");
    printf("------------------------------\n");
    while ( w ){
        printf("%-20s%d\n", w->buf, w->cnt);
        w = w->next;
    }
    printf("------------------------------\n");
}
 
int main(void){
    char buf[BUFSIZ], *p;
    wrd_t *first, *last, *found;
    size_t cnt;
 
    printf("String: ");
    if ( !fgets(buf, BUFSIZ, stdin) || *buf == '\n' )
        exit(1);
 
    first = last = NULL;
    cnt = 0;
    for ( p = strtok(buf, " \t\n"); p; p = strtok(NULL, " \t\n") ){
        ++cnt;
        if ( found = findWrd(first, p) ){
            found->cnt += 1;
            continue;
        }
        if ( ( last = newWrd(p, last) ) == NULL ){
            fprintf(stderr, "Can't create a new word!\n");
            exit(1);
        }
        if ( !first )
            first = last;
    }
    if ( !first ){
        fprintf(stderr, "No words reached!\n");
        exit(1);
    }
    printf("Words counted:\n");
    prnWrd(first);
    printf("TOTAL: %d words\n", cnt);
 
    clrWrd(first);
    exit(0);
}
koc94ok
9 / 9 / 1
Регистрация: 22.04.2010
Сообщений: 505
23.04.2010, 19:52  [ТС]     Посчитать, сколько слов содержит текст произвольной длины. #7
Цитата Сообщение от easybudda Посмотреть сообщение
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef struct WRD {
    char *buf;
    size_t cnt;
    struct WRD *next;
} wrd_t;
 
wrd_t *newWrd(const char *s, wrd_t *last){
    wrd_t *nw;
    if ( ( nw = (wrd_t*)malloc(sizeof(wrd_t)) ) == NULL )
        return NULL;
    if ( ( nw->buf = strdup(s) ) == NULL ){
        free(nw);
        return NULL;
    }
    nw->cnt = 1;
    nw->next = NULL;
    if ( last )
        last->next = nw;
    return nw;
}
 
void clrWrd(wrd_t *w){
    wrd_t *t;
    while ( w ){
        t = w->next;
        free(w->buf);
        free(w);
        w = t;
    }
}
 
wrd_t *findWrd(const wrd_t *w, const char *s){
    if ( !w || !s )
        return NULL;
    while ( w ){
        if ( !strcmp(w->buf, s) )
            break;
        w = w->next;
    }
    return (wrd_t*)w;
}
 
void prnWrd(const wrd_t *w){
    printf("------------------------------\n");
    printf("Word                Count\n");
    printf("------------------------------\n");
    while ( w ){
        printf("%-20s%d\n", w->buf, w->cnt);
        w = w->next;
    }
    printf("------------------------------\n");
}
 
int main(void){
    char buf[BUFSIZ], *p;
    wrd_t *first, *last, *found;
    size_t cnt;
 
    printf("String: ");
    if ( !fgets(buf, BUFSIZ, stdin) || *buf == '\n' )
        exit(1);
 
    first = last = NULL;
    cnt = 0;
    for ( p = strtok(buf, " \t\n"); p; p = strtok(NULL, " \t\n") ){
        ++cnt;
        if ( found = findWrd(first, p) ){
            found->cnt += 1;
            continue;
        }
        if ( ( last = newWrd(p, last) ) == NULL ){
            fprintf(stderr, "Can't create a new word!\n");
            exit(1);
        }
        if ( !first )
            first = last;
    }
    if ( !first ){
        fprintf(stderr, "No words reached!\n");
        exit(1);
    }
    printf("Words counted:\n");
    prnWrd(first);
    printf("TOTAL: %d words\n", cnt);
 
    clrWrd(first);
    exit(0);
}
можно результат с любым текстом прогнать, а то у меня компила щас нету&
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
23.04.2010, 20:01     Посчитать, сколько слов содержит текст произвольной длины. #8
Цитата Сообщение от koc94ok Посмотреть сообщение
можно результат с любым текстом прогнать, а то у меня компила щас нету
ага
Посчитать, сколько слов содержит текст произвольной длины.
koc94ok
9 / 9 / 1
Регистрация: 22.04.2010
Сообщений: 505
23.04.2010, 20:12  [ТС]     Посчитать, сколько слов содержит текст произвольной длины. #9
Цитата Сообщение от easybudda Посмотреть сообщение
Огромное спс , а блок схему этого чуда ктонибудь может сделать? хотяб в паинте накалякать
easybudda
23.04.2010, 20:27
  #10

Не по теме:

Цитата Сообщение от koc94ok Посмотреть сообщение
а блок схему этого чуда ктонибудь может сделать?
Мёдом не намазать?

koc94ok
9 / 9 / 1
Регистрация: 22.04.2010
Сообщений: 505
23.04.2010, 20:35  [ТС]     Посчитать, сколько слов содержит текст произвольной длины. #11
Цитата Сообщение от easybudda Посмотреть сообщение

Не по теме:


Мёдом не намазать?

хорошо бы, просто самому дольше разбираться
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2010, 23:02     Посчитать, сколько слов содержит текст произвольной длины.
Еще ссылки по теме:
Посчитать сколько двоичных единиц содержит каждое число массива. C++
C++ Посчитать сколько в тексте слов с 1, 2 и 3 слогами
C++ Строка содержит текст.подсчитать количество слов которые начинаются на вводимую букву.
Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? C++
Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? C++

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

Или воспользуйтесь поиском по форуму:
koc94ok
9 / 9 / 1
Регистрация: 22.04.2010
Сообщений: 505
24.04.2010, 23:02  [ТС]     Посчитать, сколько слов содержит текст произвольной длины. #12
а за wmz ? никто нехочет?
Yandex
Объявления
24.04.2010, 23:02     Посчитать, сколько слов содержит текст произвольной длины.
Ответ Создать тему
Опции темы

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