Usuwanie wielu spacji.
Ostatnio zmodyfikowano 2017-10-14 19:07
Roud Temat założony przez niniejszego użytkownika |
Usuwanie wielu spacji. » 2017-10-14 12:56:26 Witam mam napisać program, który usunie wiele tych samych znaków np spacji. Jednak tego nie robi. Gdzie jest błąd? W niektórych miejscach pozostaje podwójna spacja. #include <iostream> #include <string> using namespace std;
int main() { string napis; cout << "podaj napis \n"; getline( cin, napis ); for( int i = 0; i < napis.length() - 1; i++ ) { if( napis.at( i ) == ' ' && napis.at( i + 1 ) == ' ' ) napis.erase( i, 1 ); cout << napis << "\n"; } cout << napis; }
|
|
nanoant20 |
» 2017-10-14 14:17:49 Tutaj masz podobny temat http://cpp0x.pl/forum/temat/?id=13854
|
|
mateczek |
» 2017-10-14 15:21:11 warunek jest ok i nawet Ci usuwa spacje choć nie tak jak byś chciał Problem leży w tym, że pętla for automatycznie inkrementuje "i". A w przypadku usunięcia spacji nie wolno ci podnieść "i" bo skaczesz o dwa znaki. #include <iostream> #include <string> using namespace std; int main() { string napis; cout << "podaj napis \n"; getline( cin, napis ); for( size_t i = 0; i < napis.size() - 1; ) { if( napis[ i ] == ' ' && napis[ i + 1 ] == ' ' ) { napis.erase( i, 1 ); continue; } i++; cout << napis << "\n"; } cout << napis; }
|
|
Roud Temat założony przez niniejszego użytkownika |
» 2017-10-14 19:07:41 Dziękuje bardzo za pomoc |
|
« 1 » |