rzutowanie za pomocą operatora static_cast
Ostatnio zmodyfikowano 2016-08-03 00:20
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-08-01 22:35:29 Ok, super. A czym właściwie różni się string od tablicy char (po zgaduje, że tym własnie jest?)?
Może przedstawie co chciałbym zrobić.
Chciałbym zrobić program w którym gracz wpisuję hasło składające się (póki co) tylko z liter. Po czym program wpisuje kolejno litery a,b,c... i porównuje z hasłem. Kiedy dojdzie do 'z' zaczyna się aa, ab, ac... Teraz tylko jak zrobić coś takiego?
int main() { char haslo[x] ; cin>>haslo; return 0; }
No właśnie... x. Wielkości tablicy nie można zmienić w trakcie działania programu więc instrukcja cin>>x; odpada. Ewentualnie można nadać jej wielkość np. 10 i z góry ustalić, że mogą być hasła max. 10 znaków, ale czy to dobre rozwiązanie? Załóżmy, że tak będzie:
int main() { char haslo[10] ; cin>>haslo;
char tabl[3]{'a','b','c'} // dla uproszczenia na razie tylko te 3 litery int numer_elementu=0; while(numer_elementu<3)
{ cout<<tabl[numer_elementu]; if(???)cout<<"haslo to: "<<tabl[numer_elementu]; // no właśnie. if co? co zrobić, żeby porównać tablice haslo z tablicą tabl numer_elementu++; } return 0; }
kod napisany tylko do zobrazowania problemu i pominąłem w nim np. zatrzymanie programu po odgadnięciu hasła. Także proszę o jakieś instrukcję (mam na myśli porady, nie kod ;) ). PS. przepraszam, że bez tej fajnej obramówki pt. C/C++ ale niestety nie wiem jak takową stworzyć.
|
|
carlosmay |
» 2016-08-02 00:35:41 Przeczytaj to bardzo uważnie!To jest rozwiązanie: int main() { char tabl[ 10 ] = { 'a', 'b', 'c', '\0' }; char haslo[ 10 ]; cin.getline( haslo, 10 ); if( strcmp( tabl, haslo ) == 0 ) { cout << "haslo jest poprwane\n"; } } string jest wygodniejsze. |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-08-03 00:20:12 Wszystko jasne, przestudiowałem info o zakładaniu tematów, za pomoc wszystkim dziękuję, zamykam temat :) |
|
1 2 « 3 » |