0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 29
1

Повторяющиеся слова во введёной строке

02.10.2012, 02:43. Показов 1605. Ответов 2
Метки нет (Все метки)

"Ввести строку, выяснить, нет ли повторяющихся слов, и вывести их, если они есть."
Не могу разобраться с поиском повторяющихся слов..ввод и вывод понятны...
Заранее спасибо
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2012, 02:43
Ответы с готовыми решениями:

В символьной строке удалить повторяющиеся слова
В символьной строке удалить повторяющиеся слова.

В символьной строке оставить только те слова, в которых есть повторяющиеся буквы
Здравствуйте! Не могли бы вы помочь мне в решении задачи? Я уже третий день работаю,но не...

Создать программу, которая в символьной строке оставляет только те слова, в которых есть повторяющиеся символы
Помогите создать программу, которая в символьной строке оставляет только те слова, в которых есть...

Напечатать в алфавитном порядке слова исходного текста, исключив повторяющиеся слова
Напечатать в алфавитном порядке слова исходного текста, исключив повторяющиеся слова. Разделители...

2
319 / 269 / 128
Регистрация: 24.05.2012
Сообщений: 629
02.10.2012, 16:08 2
Лучший ответ Сообщение было отмечено LexProger как решение

Решение

Слова разделяются только пробелами.
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
#include <memory.h>
#include <stdio.h>
#include <stdlib.h>
 
enum {
    ARR_BUFF = 5,
    STR_BUFF = 10
};
 
int main() {
    char** a = (char**)malloc(ARR_BUFF * sizeof(char*));
    unsigned asize = ARR_BUFF, j, n = 0;
    char* buffer = (char*)malloc(STR_BUFFER * sizeof(char));
    unsigned bsize = STR_BUFF, i;
    char c;
 
    do {
        i = 0;
        while ((c = getchar()) != ' ' && c != '\n') {
            buffer[i++] = c;
            if (i == bsize)
                buffer = (char*)realloc(buffer, (bsize += STR_BUFF) * sizeof(char));
        }
        if (i) {
            for (j = 0; j < n; j++)
                if (!a[j][i] && !memcmp(a[j], buffer, i * sizeof(char))) {
                    fwrite(buffer, sizeof(char), i, stdout);
                    putchar('\n');
                    goto endloop;
                }
            a[n] = (char*)malloc((i + 1) * sizeof(char));
            memcpy(a[n], buffer, i * sizeof(char));
            a[n++][i] = '\0';
            if (n == asize)
                a = (char**)realloc(a, (asize += ARR_BUFF) * sizeof(char*));
        }
    endloop:
        ;
    } while (c != '\n');
    for (j = 0; j < n; j++)
        free(a[j]);
    free(a);
    free(buffer);
    getchar();
}
1
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 29
06.10.2012, 01:35  [ТС] 3
Кот Ангенс, спасибо огромное!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2012, 01:35

Даны три слова. Напечатать их общие буквы. Повторяющиеся буквы каждого слова не рассматривать
Даны три слова. Напечатать их общие буквы. Повторяющиеся буквы каждого слова не рассматривать.

Найти в строке повторяющиеся слова
С огромным трудом разбираюсь в Лиспе, а срочно надо программу написать! Помогите, пожалуйста, кто...

Удалить повторяющиеся слова в строке
Здравствуйте! Как удалить из строки типа char, введенной с помощью cin.getline(buf, 80),...

Удалить повторяющиеся слова в строке
Необходимо найти и сохранить в строке те слова, которые встречаются в последовательности по одному...


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

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

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