Odwracanie wpisanych słów
Ostatnio zmodyfikowano 2015-09-03 20:53
mcpp1 Temat założony przez niniejszego użytkownika |
Odwracanie wpisanych słów » 2015-09-03 20:31:08 Hej, od niedawna uczę się programować, wymyśliłem sobie program, który wypisuje odwrotnie podane słowa. #include <iostream> #include <string>
using namespace std; int main( int argc, char ** argv ) { string zmienna; cout << "Napisz stringa" << endl; getline( cin, zmienna ); int i = 0; int licznik = 0; while( zmienna[ i ] ) { cout << zmienna[ i ]; if( isspace( zmienna[ i ] ) ) licznik++; i++; } licznik = licznik + 2; int u = 0; int * w = new int[ licznik ]; int pomoc = 1; while( zmienna[ u ] > 1 ) { if( isspace( zmienna[ u ] ) ) { w[ pomoc ] = u; pomoc++; } u++; } w[ 0 ] = 0; w[ pomoc ] = i; cout << endl; for( int now = 0; now < licznik; now++ ) { cout << w[ now ] << " | "; } cout << endl; int q = 0; int r = 1; int t = 0; while( w[ pomoc - q ] != 0 ) { t = w[ pomoc - q ] - w[ pomoc - r ]; for( int s = 0; s < t; s++ ) { cout << zmienna[ w[ pomoc - r ] + s ]; } cout << " "; r++; q++; } return 0; }
Wydaje mi się, że trochę przekombinowałem :) Da się to przerobić na prostszy kod? Zależy mi, żeby nie używać funkcji wbudowanych, które wykonają całe zadanie same:) Poza tym, każdą zmienną przed użyciem muszę ustawiać na 0, tak samo zerować tablice. Jeśli tego nie zrobię to w niektórych elementach tkwią oprócz zer, przypadkowe wartości. To problem kompilatora, mojego komputera czy czegoś innego? |
|
pekfos |
» 2015-09-03 20:53:26 To problem kompilatora, mojego komputera czy czegoś innego? |
Kompilator nie nazwałby tego problemem, bo na tym korzysta. Niezainicjalizowana zmienna ma nieokreśloną wartość, a jej użycie ma niezdefiniowane zachowanie. Wydaje mi się, że trochę przekombinowałem :) |
Minimalnie. #include <iostream> #include <string>
int main() { std::string str; std::getline( std::cin, str ); std::cout << std::string( str.rbegin(), str.rend() ); } //edit: źle zrozumiałem te odwracanie :P |
|
« 1 » |