Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Odwracanie wpisanych słów

Ostatnio zmodyfikowano 2015-09-03 20:53
Autor Wiadomość
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.

C/C++
#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++; //ilosc spacji
       
        i++; //zliczanie liter
       
    }
    licznik = licznik + 2; // do  dopisania 0 na poczatku i ilosci liter na koncu
    int u = 0;
    int * w = new int[ licznik ]; //wskaznik do miejsca przechowywania spacji
    int pomoc = 1;
    while( zmienna[ u ] > 1 )
    {
        //cout<<zmienna[u];
        if( isspace( zmienna[ u ] ) ) { w[ pomoc ] = u; pomoc++; } // w ktorym miejscu spacja oraz poczatek i koniec w stringu zmienna
       
        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?
P-137235
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.
C/C++
#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
P-137238
« 1 »
  Strona 1 z 1