Porównanie jednej tablicy z druga.
Ostatnio zmodyfikowano 2016-02-05 16:39
sebabass Temat założony przez niniejszego użytkownika |
Porównanie jednej tablicy z druga. » 2016-02-05 10:14:43 Witam, Od jakiegoś cczasu zacząłem programować w C++. Robię pewne zadanie i mam problem. Otoż w tym zadaniu użytkonik ma podać 7 liter. A program ma mu wypisać wszystkie możliwe wyrazy z tych liter. Wyrazy pobieram z txt. Mój kod wygląda tak: #include<iostream> #include<cstdlib> #include<fstream> #include<windows.h> #include<stdio.h> #include<cstring> #include<conio.h> #include<string>
using namespace std;
char litera[ 7 ];
int main() { cout << "Podaj 7 roznych znakow:" << endl; for( int i = 0; i < 7; i++ ) { cin >> litera[ i ]; } fstream plik; plik.open( "slownik.txt", ios::in ); if( plik.good() == false ) { cout << "Plik nie istnieje"; system( "pause" ); exit( 0 ); } string linia; int nr_lini = 1; while( getline( plik, linia ) ) { cout << linia << endl; nr_lini++; } system( "pause" ); return 0; }
Mój program wyświetla wszystkie wyrazy z txt. Pytanie teraz, jak zrobić aby wyświetlił mi tylko te wyrazy, które składają się z tych 7 liter. Myślałem nad uzyciem jeszcze jednej tablicy skłądającej się z całego alfabetu. Od tej nowej tablicy odjąć te wybrane przez użytkownika i każdy wyraz przebadać, jesli znajdzie literę niezdefiniowaną to to bierze następny wyraz. Ale jak to zapisać... Myślałem, żeby w pętli while dołożyć coś takiego: for( int i = 0; i < 7; i++ ) { for( int j = 0; j < 7; j++ ) { if( linia[ i ] == litera[ j ] ) linia[ i ] = 0; } }
Nie proszę o rozwiązanie, tylko o pomoc, nakierowanie. Pozdrawiam![/i][/i] |
|
pekfos |
» 2016-02-05 10:41:24 Stwórz tablicę wartości logicznych i ustaw pole na true, jeśli jego indeks jest równy kodowi znaku, który może występować. Jeśli dla każdego znaku sprawdzanego wyrazu w tablicy będzie prawda, to go wyświetl. |
|
darko202 |
» 2016-02-05 10:42:07 wolny pomysł na algorytm
0. wczytujesz kolejne słowa 1. dla kolejnego wczytanego słowa 2. sprawdzasz kolejne litery, czy są w słowniku liter ( char litera[ 7 ]; ) 3. jeśli litery nie ma w słowniku - słowo odrzucasz
|
|
sebabass Temat założony przez niniejszego użytkownika |
» 2016-02-05 10:47:26 darko202 no to właśnie chyba tak mam, biorę wyraz, sprawdzam każdą litere wyrazu z literą usera, jeśli false to zaczynam od początku.. |
|
sebabass Temat założony przez niniejszego użytkownika |
» 2016-02-05 10:51:16 Wydaje mi się, że moze problem jest polega na tym, że program pobiera wyrazy z txt jako jednego stringa a nie jako tabele stringow, ale nie wiem czy jest taka możliwość.. |
|
pekfos |
» 2016-02-05 10:56:36 Wydaje mi się, że moze problem jest polega na tym, że program pobiera wyrazy z txt jako jednego stringa |
Masz wszystkie wyrazy w jednej linii? moze problem jest polega na tym |
Jaki problem? Jedyny podany tu problem polega na tym, że nie wiesz jak zapisać pętlę. Może byś się tak zdecydował na jakieś konkretne pytania..? |
|
sebabass Temat założony przez niniejszego użytkownika |
» 2016-02-05 11:01:41 Nie. każdy wyraz jest w nowej linii.
Okej, moje pytanie jest takie: Jak zapisać tę pętle, która porówna mi litery wyrazu z literami użytkownika i stwierdzi czy są takie same czy nie. |
|
pekfos |
» 2016-02-05 11:08:50 Na to już dostałeś odpowiedź. |
|
« 1 » 2 |