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

Дано предложение. Вывести все различные слова. - C++

Восстановить пароль Регистрация
 
Джамиля
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 8
26.01.2010, 16:08     Дано предложение. Вывести все различные слова. #1
Дано предложение. Вывести все различные слова.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2010, 16:08     Дано предложение. Вывести все различные слова.
Посмотрите здесь:

Дано предложение. Вывести все различные слова C++
Дано предложение. Вывести все различные слова. C++
Двоичные файлы.Дано предложение.Создать файл и вывести в него все символы этого предложения,отличные от знаков препинания.Вывести содержимое на экран. C++
Дано предложение, надо вывести слова встречающие более одного раза C++
C++ Дано предложение. Вывести все буквы м и н в нем
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.01.2010, 20:07     Дано предложение. Вывести все различные слова. #2
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/* Дано предложение. Вывести все различные слова. */
 
#define SPCHARS " ,.\t\n"
 
int main(void){
    char buf[BUFSIZ], *p, **words;
    int cnt, i, j;
    
    printf("String: ");
    if ( !fgets(buf, BUFSIZ, stdin) )
        exit(1);
    
    for ( cnt = 0, words = NULL, p = strtok(buf, SPCHARS); p != NULL; p = strtok(NULL, SPCHARS) ){
        if ( ( words = (char**)realloc(words, sizeof(char*) * (cnt + 1)) ) == NULL ){
            fprintf(stderr, "Bad memory!\n");
            exit(1);
        }
        if ( ( words[cnt] = strdup(p) ) == NULL ){
            fprintf(stderr, "Bad memory!\n");
            exit(1);
        }
        ++cnt;
    }
    
    if ( !words ){
        fprintf(stderr, "No words found!\n");
        exit(1);
    }
    for ( i = 0; i < cnt - 1; ++i ){
        if ( !*(words[i]) )
            continue;
        for ( j = i + 1; j < cnt; ++j )
            if ( !strcmp(words[i], words[j]) )
                *(words[j]) = '\0';
    }
    
    printf("Unique words:\n");
    for ( i = 0; i < cnt; ++i )
        if ( *(words[i]) )
            printf("%s\n", words[i]);
    
    for ( i = 0; i < cnt; ++i )
        free(words[i]);
    free(words);
    exit(0);
}
Джамиля
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 8
27.01.2010, 13:03  [ТС]     Дано предложение. Вывести все различные слова. #3
Пасибки большое!!!!!!!
Андрейка
406 / 210 / 22
Регистрация: 25.03.2009
Сообщений: 708
27.01.2010, 13:25     Дано предложение. Вывести все различные слова. #4
Джамиля,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <set>
#include <string>
 
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
 
    std::cout << "вводи потом жми CTRL + Z" << std::endl;
 
    std::istream_iterator <std::string> _ITER(std::cin);
    std::istream_iterator <std::string> _ITER2;
 
    std::vector <std::string> _VEC(_ITER, _ITER2);
 
    std::set <std::string> _SET(_VEC.begin(), _VEC.end());
 
    std::ostream_iterator <std::string> _ITER3(std::cout," ");
    std::copy(_SET.begin(), _SET.end(), _ITER3);
 
    return 0;
}
Yandex
Объявления
27.01.2010, 13:25     Дано предложение. Вывести все различные слова.
Ответ Создать тему
Опции темы

Текущее время: 12:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru