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

Вывести все слова в столбик без повторений - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
TomyThompson
2 / 2 / 0
Регистрация: 26.03.2011
Сообщений: 9
18.04.2011, 18:43     Вывести все слова в столбик без повторений #1
У меня такое задание:

Ввести ленту произвольной длины, которую трактовать как текст, в котором слова отделены одним или несколькими пробелами (длина слов, в общем, произвольная). Считая, что в заданном тексте возможно повторение слов, вывести все слова в столбик без повторений. Во втором столбце напечатать частоту использования соответствующего слова.

Как это сделать? Помогите пожалуйста.

Добавлено через 19 часов 59 минут
Это делать черз двумерный массив?
Напишите пожалуйста кто знает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 18:43     Вывести все слова в столбик без повторений
Посмотрите здесь:

Ввести строку вывести каждое слово из этой строки с кол-ом повторений этого слова учитывая все знаки препинания... C++
C++ Распечатать в столбик все слова строки
C++ Вывести слова без повторений,которые имеют больше гласных,чем согласных.
C++ [C++] Вывести все глухие согласные буквы (без повторений), которые встретились в двух самых коротких словах
C++ Из заданной строки, распечатать все слова без повторений (как добавить функцию strcmp)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
18.04.2011, 19:15     Вывести все слова в столбик без повторений #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<map>
#include<string>
#include<sstream>
#include<algorithm>
#include<iomanip>
 
 
int main(){
    std::string text="aa  ss   aaa   aa ss aa";
    std::stringstream ss(text);
    std::map<std::string, int> wordCon;
    while(ss>>text){
        ++wordCon[text];
    }
    std::for_each(wordCon.begin(), wordCon.end(), [](std::pair<std::string, int> val){
                  std::cout<<std::setw(15)<<std::left<<val.first<<" "<<val.second<<"\n";});
    return 0;
}
TomyThompson
2 / 2 / 0
Регистрация: 26.03.2011
Сообщений: 9
19.04.2011, 21:42  [ТС]     Вывести все слова в столбик без повторений #3
Оно не работает.
Вообще задача такова:
Ввести ленту произвольной длины, которую трактовать как текст, в котором слова отделены одним или несколькими пробелами (длина слов, в общем, произвольная). Считая, что в заданном тексте возможно повторение слов, вывести все слова в столбик без повторений. Во втором столбце напечатать частоту использования соответствующего слова.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.04.2011, 21:44     Вывести все слова в столбик без повторений #4
TomyThompson, Код выше вполне удовлетворяет даное условие.
TomyThompson
2 / 2 / 0
Регистрация: 26.03.2011
Сообщений: 9
19.04.2011, 22:03  [ТС]     Вывести все слова в столбик без повторений #5
код сверху выбивает 8 ошибок)
я в visual c++ 2008
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
20.04.2011, 00:54     Вывести все слова в столбик без повторений #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
int Cmp(const void* a, const void* b){
    return strcmp(*(char**)a, *(char**)b);
}
 
int main(){
    char text[]="aa  ss   aaa   aa ss aa", *p=NULL, *mas[100]={NULL}, **a=mas, **b=mas;
    for(p=strtok(text, " "); p; p=strtok(NULL, " "), ++a){
        *a=p;
    }
    qsort(mas, a-mas, sizeof(*mas), Cmp);
    for(a=mas; *a; ){
        for(b=a; *a&&!strcmp(*b, *a); ++a);
        printf("%-15s %d\n", *b, a-b);
    }
    return 0;
}
Yandex
Объявления
20.04.2011, 00:54     Вывести все слова в столбик без повторений
Ответ Создать тему
Опции темы

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