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

Operacje na tablicy znakow >> Usuwanie spacji na koncu tekstu.

Ostatnio zmodyfikowano 2013-01-26 22:25
Autor Wiadomość
maze
Temat założony przez niniejszego użytkownika
Operacje na tablicy znakow >> Usuwanie spacji na koncu tekstu.
» 2013-01-26 19:36:05
Witam,

cwicze operacje na tablicach plikow. Zatrzymalem sie na usuwaniu spacji, z tymi z przodu przed tekstem nie mam problemu, tylko z tymi na koncu. Nie moge sie ich pozbyc.

taki mam kod:

C/C++
#include <iostream>

using namespace std;

char * usun_spacje( char * tablica, int rozmiar )
{
    //usuwanie spacji przed wyrazem
   
    for( int i = 0; tablica[ i ] == ' '; )
    for( int k = 0; tablica[ k ] != NULL; k++ )
    {
        tablica[ k ] = tablica[ k + 1 ];
    }
   
    //usuwanie spacji za wyrazem
   
    for( int g = rozmiar - 1; tablica[ g ] == '\0'; g-- )
    for( int m = g; tablica[ m ] == ' '; m-- )
         tablica[ m ] = NULL;
   
    return tablica;
}

int main()
{
    const int rozmiar = 100;
    char tablica[ rozmiar ] = { };
   
    cout << "Operacje znakowe" << endl << endl;
    cout << "Wprowadz jakies zdanie" << endl;
    cin.getline( tablica, rozmiar - 1 );
    cout << endl << "Wprowadzone zdanie:" << endl; cout << tablica;
   
    usun_spacje( tablica, rozmiar );
    cout << "Zdanie bez spacji:" << endl << tablica << "SPR";
   
    return 0;
   
   
}

Probowalem roznie, ale nic nie dziala.  Wprowadzam zdanie ze spacjami na pcozatku, i dopisuje spacje po ostatnim slowie. znacznik SPR jest po to zeby widac bylo czy usunieto spacje.

Bede wdzieczny za jakies naprowadzenie.

Pozdrawiam
P-75101
maze
Temat założony przez niniejszego użytkownika
» 2013-01-26 21:16:48
ok , sam doszedlem w koncu do rozwiazania.

prawidlowy kod wyglada nastepujaco:: (sama czesc usuwajaca spacje za napisem)

C/C++
for( int g = rozmiar - 1; tablica[ g ] == NULL; g-- )
     if( tablica[ g - 1 ] == ' ' ) tablica[ g - 1 ] = NULL;

return tablica;
P-75116
maze
Temat założony przez niniejszego użytkownika
» 2013-01-26 22:25:59
Hej mam teraz inne pytanie, jakbyscie mogli zerknac.


C/C++
void dodaj_spacje( char * tablica, int n, int rozmiar )
{
    for( int k = rozmiar; tablica[ k ] == NULL; k-- )
    if( tablica[ k - 1 ] != NULL ) { tablica[ k + n - 1 ] = tablica[ k + n - 1 ]; tablica[ k - 1 ] = NULL; }
   
    for( int i = 0; i < n; i++ )
         tablica[ i ] = ' ';
   
}

Mam taka funkcje, w ktorej argumet 'n' to jest ilosc spacji o jakie chcemy przesunac tekst w tablicy.
Dodaje ona spacje na poczatku (drugi for), ale nie chce przesuwac tekstu. Dlaczego nie chce? wydaje sie wszytsko okey?
P-75123
« 1 »
  Strona 1 z 1