C++ Wyszukiwanie konkretnych słów z podanego zdania
Ostatnio zmodyfikowano 2013-07-15 20:28
kbviii Temat założony przez niniejszego użytkownika |
C++ Wyszukiwanie konkretnych słów z podanego zdania » 2013-07-15 02:23:05 Witajcie! Powoli wracam do nauki C++ ale po wieloletniej przerwie, więc można powiedzieć, że zaczynam od zera. Potrzebuję zrobić krótki i prosty program który z podanego ciągu wyrazów wyszuka ten który ja wpiszę. Na przykładzie PESELU -> program poprosi o wpisanie ciągu cyfr po czym porówna czy w ciągu znaków, który ja wcześniej zdefiniuję znajduje się taki pesel czy nie. Napisałem coś takiego, ale kleiłem to ze wszystkich możliwych sposobów i nawet momentami działa, ale zazwyczaj albo wywala cały program (chyba przez tego printa) albo wyświetla jedną odpowiedz bez znaczenia co wpisze. Pomijam już fakt, że przerosła mnie funkcja "system ("pause")" i ją sobie darowałem. Proszę o pomoc! #include <iostream> #include <cstdio>
void print( std::string::size_type n, std::string const & s ) { if( n == std::string::npos ) { std::cout << "niestety nie mam go :("; } else { std::cout << "TAK!" << s.substr( n ) << '\n'; } }
int main() { char name; std::cout << "Podaj swój PESEL"; std::cin >> name; std::string::size_type n; std::string const s = "789789789798 46546546546 132321321546"; n = s.find( name ); print( n, "Mam taki pesel" ); return 0; }
|
|
pekfos |
» 2013-07-15 11:17:52 char to jeden znak, a nie tekst. Poza tym, po co ci drugi argument funkcji print()? |
|
kbviii Temat założony przez niniejszego użytkownika |
już finisz... » 2013-07-15 15:08:23 Dzięki za podpowiedź ;) Zmieniłem tego char i print . Wszystko działa teraz poprawnie. Mam tylko ostatni problem, po włączeniu on wyświetla wynik i od razu się wyłącza. Próbowałem z system( "pause" ); ale nie pomogło. Wygląda to tak: #include <iostream> #include <cstdio> #include <string>
void print( std::string::size_type n, std::string const & s ) { if( n == std::string::npos ) { std::cout << "niestety nie :("; } else { std::cout << "TAK!" << '\n'; } }
int main() { std::string name; std::cout << "Czesc, wpisz swoje nazwisko i sprawdz czy jestes na liscie! "; std::cin >> name; std::string::size_type n; std::string const s = "wysoka niska fajna brzydka iksinska kowalski"; n = s.find( name ); print( n, s ); return 0; }
|
|
pekfos |
» 2013-07-15 16:01:22 Możesz użyć getch() z conio.h. |
|
kbviii Temat założony przez niniejszego użytkownika |
SUPER! » 2013-07-15 20:28:17 Dziękuję pięknie! :) Wszystko działa jak należy!
Pozdrawiam Mateusz |
|
« 1 » |