Układanie wyrazu z ciągu znaków
Ostatnio zmodyfikowano 2017-01-23 00:18
kubu355 Temat założony przez niniejszego użytkownika |
Układanie wyrazu z ciągu znaków » 2017-01-23 00:02:14 Muszę napisać taki program: Jan zapisał sobie w pliku zdania (1 zdanie to 1 linia), które chciałby ułożyć z literek i cyferek, które posiada. Prosi Ciebie o pomoc, które z tych zdań może ułożyć korzystając z tego zestawu znaków, które wpiszę z klawiatury do Twojego programu. Wielkość liter ma znaczenie! Wyświetl mu, które zdania może ułożyć. Sam stwórz potrzebny, przykładowy plik. Przykładowy plik: Jan Ala ma kota Znaki od Jana: nAjAa Odpowiedź: Jan Udało mi się napisać taki kod, działa on kiedy wyraz jest równy ciągowi znaków, ale kiedy ciąg jest dłuższy wywala program: #include <iostream> #include <string> #include <fstream> #include <regex> #include <tuple> #include <utility> #include<iomanip>
using namespace std;
int main() { string ciag; cin >> ciag; cout << ciag << endl; ifstream plik( "zdania.txt", ios::in ); if( plik.is_open() ) { while( !plik.eof() ) { string zdanie; getline( plik, zdanie ); cout << zdanie << endl; for( int i = 0; i < ciag.length(); i++ ) for( int j = 0; j < zdanie.length(); j++ ) if( zdanie[ j ] == ciag[ i ] ||( zdanie[ j ] - 32 ) == ciag[ i ] || zdanie[ j ] ==( ciag[ i ] - 32 ) ||( zdanie[ j ] - 32 ) ==( ciag[ i ] - 32 ) ) { cout << zdanie[ i ]; } } } }
|
|
Gibas11 |
» 2017-01-23 00:18:34 Może czegoś nie rozumiem, ale jeśli wielkość liter ma znaczenie to z 'nAjAa' nie da się ułożyć 'Jan', brakuje 'J'. //edit: Jeśli po prostu się machnąłeś i powinno być tam 'jan', to na Twoim miejscu użyłbym gotowców z STL, ułatwiają trochę sprawę. bool test( const std::string & charset, const std::string & sample ) { for( char c: sample ) { if( std::count( charset.begin(), charset.end(), c ) < std::count( sample.begin(), sample.end(), c ) ) { return false; } } return true; } Bo tak naprawdę to wystarczy wiedzieć, że zdania nie da się ułożyć, jeśli jakiś znak występuje w nim więcej razy niż w zestawie pobranym z stdin. |
|
« 1 » |