Operacje na tablicy znakow >> Usuwanie spacji na koncu tekstu.
Ostatnio zmodyfikowano 2013-01-26 22:25
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: #include <iostream>
using namespace std;
char * usun_spacje( char * tablica, int rozmiar ) { for( int i = 0; tablica[ i ] == ' '; ) for( int k = 0; tablica[ k ] != NULL; k++ ) { tablica[ k ] = tablica[ k + 1 ]; } 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 |
|
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) for( int g = rozmiar - 1; tablica[ g ] == NULL; g-- ) if( tablica[ g - 1 ] == ' ' ) tablica[ g - 1 ] = NULL;
return tablica;
|
|
maze Temat założony przez niniejszego użytkownika |
» 2013-01-26 22:25:59 Hej mam teraz inne pytanie, jakbyscie mogli zerknac. 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? |
|
« 1 » |