Problem z zadaniem z ksiazki, tablica char, liczenie słów
Ostatnio zmodyfikowano 2017-05-24 12:11
Bercik97 Temat założony przez niniejszego użytkownika |
Problem z zadaniem z ksiazki, tablica char, liczenie słów » 2017-05-23 22:42:52 Witam. Mam problem z przekształceniem kodu ze string na char. Link do zdj zadania => http://imgur.com/a/aA7Sq Pokrótce, mam napisać program który korzysta z tablicy char, odczytuje podane słowa przez użytkownika, gdy użytkownik napisze " gotowe " program ma się skończyć i podać ile użytkownik podał słów. Zadanie 9 zrobiłem, ale z 8 mam problem, nie wiem jak to przekształcić na tablice char. Gdy podaje słowa program na końcu podaje mi ilość liter, i gdy napotka literę " e " ( ostatnia litera słowa " gotowe " ) to kończy mi program. Proszę o szybką odpowiedź. link => http://imgur.com/a/AG1Vv Zadanie 8 kod : #include <iostream> #include <cstring> #include <cstdlib> using namespace std;
const char gotowe = 'gotowe'; char slowo; int dlugosc = - 1;
int main() { cout << "Podawaj slowa (kiedy skonczysz, napisz \" gotowe \"\n"; do { cin >> slowo; ++dlugosc; } while( slowo != gotowe ); if( dlugosc <= 4 ) { cout << "Podano " << dlugosc << " slowa."; } else cout << "Podano " << dlugosc << " slow."; cout << endl; system( "PAUSE" ); return 0; }
Zadanie 9 kod ( ZROBIONE ) : #include <iostream> #include <string> #include <cstdlib> using namespace std;
const string gotowe = "gotowe"; string slowo; int dlugosc = - 1;
int main() { cout << "Podawaj slowa (kiedy skonczysz, napisz \" gotowe \"\n"; do { cin >> slowo; ++dlugosc; } while( slowo != gotowe ); if( dlugosc <= 4 ) { cout << "Podano " << dlugosc << " slowa."; } else cout << "Podano " << dlugosc << " slow."; cout << endl; system( "PAUSE" ); return 0; }
link => http://imgur.com/a/fABYp |
|
latajacaryba |
» 2017-05-24 00:22:11 #include <iostream> #include <cstring> #include <cstdlib> using namespace std;
const char * gotowe = "gotowe"; char slowo[ 100 ];
int main() { int dlugosc = 0; cout << "Podawaj slowa (kiedy skonczysz, napisz \" gotowe \")\n"; while( 1 ) { cin >> slowo; dlugosc++; if( strcmp( slowo, gotowe ) == 0 ) { cout << "podano: \"gotowe\"\n"; break; } } cout << "podano " << dlugosc << " slow/a\n"; return 0; }
Poznaj różnice między c-stringiem (zmienną tekstową) a znakiem, bo to: const char gotowe = 'gotowe'; Tak nie działa. Próbujesz przypisać tekst (który oznaczasz jako znak, bo '...' zamiast "...") do zmiennej char. PS porównując dwa wskaźniki == porównujesz ich adresy. Używaj strcmp PSS. co to za książka? :) |
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-05-24 00:49:45 Jutro jak wstane ogarne ten kodzik. Książka to " Jezyk C++ Szkoła programowania ( wydanie VI ) - Stephen Prata ".
EDIT: Jednak teraz ogarne ten kod :D |
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-05-24 01:05:07 O co chodzi z ta " 1 " w warunku pętli while ? I czym się różni " dlugosc++ " i " ++dlugosc " ? |
|
karambaHZP |
» 2017-05-24 01:31:06 O co chodzi z ta " 1 " w warunku pętli while ? |
W warunku pętli wszystko inne niż 0, jest true , czyli 1 jest równoważne true . I czym się różni " dlugosc++ " i " ++dlugosc " ? |
Możesz przyjąć, że zapis z prefiksem jest szybszy. Zapis z postfiksem musi dodatkowo utworzyć obiekt tymczasowy, aby móc przechować wartość sprzed inkrementacji. Następnie inkrementuje wartość i zwraca wartość ze zmiennej tymczasowej. |
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-05-24 01:32:34 Dzięki ;) |
|
latajacaryba |
» 2017-05-24 12:11:41 int x = 0; int tab[ 5 ] { 0, 1, 2, 3, 4 }; cout << tab[ ++x ];
x = 0;
cout << tab[ x++ ];
|
|
« 1 » |