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

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

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

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

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

Посчитать сколько слов, содержит текст поисзвольной длины. Разделителем между словами является символ пробела. Вывести на экран список всех встречающихся в тексте слов и их количество. Указание: использовать связный список.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2010, 20:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посчитать, сколько слов содержит текст произвольной длины. (C++):

Посчитать, сколько слов содержит строкв - C++
нужно написать программу на С: дана строка символов до точки. Посчитать,сколько слов она содержит. помогите,пожалуйста..

Посчитать количество слов в указанном предложении и определить, содержит ли заданный текст Вашу фамилию - C++
Дан текст. Посчитать количество слов в предложении. Содержит данный текст вашу фамилию?

3. Ввести строку произвольной длины. Сосчитать количество слов в ней. - C++
3. Ввести строку произвольной длины. Сосчитать количество слов в ней.

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

Дан текст произвольной длины, оканчивающийся точкой с запятой. Подсчитать количество цифр в тексте - C++
1Дан текст произвольной длины, оканчивающийся точкой с запятой. Подсчитать количество цифр в тексте. 2.Даны две строки длиной до 80...

Посчитать сколько двоичных единиц содержит каждое число - 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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
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 Посмотреть сообщение

Не по теме:


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

хорошо бы, просто самому дольше разбираться
koc94ok
9 / 9 / 1
Регистрация: 22.04.2010
Сообщений: 505
24.04.2010, 23:02  [ТС] #12
а за wmz ? никто нехочет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2010, 23:02
Привет! Вот еще темы с ответами:

Посчитать количество слов равной длины в файле - C++
Дан символьный файл f. Группы символов, разделенные пробелами (одним или несколькими), будем называть словами. Сосчитать, сколько в файле...

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

Посчитать сколько в тексте слов с 1, 2 и 3 слогами - C++
помогите пжлс, нужно посчитать сколько в тексте слов с 1, 2 и 3 слогами. Спасибо

Строка содержит текст.подсчитать количество слов которые начинаются на вводимую букву. - C++
Строка содержит текст.подсчитать количество слов которые начинаются на 1-ю вводимую букву.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.04.2010, 23:02
Ответ Создать тему
Опции темы

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