zliczanie powtórzeń wyrazów
Ostatnio zmodyfikowano 2015-12-10 18:41
pulson666 Temat założony przez niniejszego użytkownika |
zliczanie powtórzeń wyrazów » 2015-12-08 17:52:53 |
|
Agares |
zliczanie powtórzeń wyrazów » 2015-12-08 18:10:18 Wyciągnąć ze stringa wyrazy poprzez sprawdzenie występowanie ' ' w tekście. Następnie w zmienić litery na małe, albo wielkie/dużo (nie pamiętam które wersja jest prawidłowa :D) wrzucić je do tablicy stringów i sprawdzić czy są sobie równe, jeśli tak to licznik danego wyrazu startujący od 1 zwiększyć o 1. Przynajmniej ja tak rozumiem to zadanie. |
|
pulson666 Temat założony przez niniejszego użytkownika |
» 2015-12-08 18:12:47 no dobrze rozumiesz, ale teraz powiedz mi jak wypisać te wyrazy które sie nie powtarzają ? |
|
michal11 |
» 2015-12-08 18:49:13 Potrzebne klasy i funkcje: istringstream (w szczególności użycie: while( iss >> wyraz ) ). tolower(). map Po kolei: 1. wczytujesz linię getlinem 2. w pętli, używając istringstream, wyciągasz każdy wyraz 3. cały wyraz lecisz forem i zamieniasz litery na małe (tolower) 4. sprawdzasz czy w mapie jest już klucz, którym jest twoje słowo (metoda find()), jeżeli nie to dodaj nowy element, jeżeli jest to zwiększ wartość 5. najtrudniejsze, czyli wypisanie posortowanych elementów, łatwe rozwiązanie to stworzenie nowej multimapy i przepisanie do niej wszystkich elementów z pierwszej mapy, trudniejsze to napisanie jakiejś swojej funkcji sortującej |
|
pulson666 Temat założony przez niniejszego użytkownika |
» 2015-12-08 18:52:13 #include "stdafx.h" #include <iostream> #include <string> #include <sstream> #include <map>
using namespace std;
int main() { string tekst, word; cout << "Podaj tekst "; getline( cin, tekst ); istringstream sin( tekst ); map < string, int > licznik; while( sin >> word ) { ++licznik[ word ]; } for( auto i = licznik.begin(); i != licznik.end(); ++i ) { cout << i->first << ' ' << i->second << '\n'; } system( "pause" ); return 0; }
zrobione daje gotowy kod |
|
michal11 |
» 2015-12-08 18:56:22 Twój kod nie działa zgodnie z tym co jest napisane w treści zadania, w szczególności nie ignoruje wielkości liter i nie wypisuje w kolejności najczęściej występujących wyrazów. |
|
pulson666 Temat założony przez niniejszego użytkownika |
» 2015-12-10 18:31:48 oczywiście lecz z tym akurat sobie poradzę ;) chodziło mi o samo zliczanie |
|
matiamss |
» 2015-12-10 18:41:08 |
|
« 1 » |