Wykorzystanie wartości zwróconej przez funkcje w instrukcji warunkowej

0

Mam string wczytany pliku, chciałbym się pozbyć wszystkich spacji.
Funkcja "serach_word" zwraca pozycje na której znalazła znak bądź zero jeśli nic nie znalazła.
Mam instrukcje warunkową, w której ją stosuje, chciałbym wykorzystać zwróconą wartość jeśli jest inna od zera przy usuwaniu znaku (spacji).
Jak można to zrobić bez deklaracji dodatkowej funkcji na przechowywanie zmiennej?

 do{
    std::cout << "cos tam" << std::endl;
    //sprawdz czy jest spacja
    bool repeat = 0;
    if(serach_word(verse, " ")!=0)
   {
      verse.erase(/*tu wartośc serach word*/,1);
      repeat = 1;
   }
   //jeśli jest to ja usun
   //powtórz póki się wszystkich nie pozbędziesz
}while(repeat == 1);
1

Takie cudo?

size_t pos;
while( ( pos = serach_word(verse, " ") ) != 0 )
	      verse.erase( pos, 1 );

Nie wiem czy nie złamałem Twojej zasady

bez deklaracji dodatkowej funkcji na przechowywanie zmiennej
bo jej nie rozumiem

Nie wiem też jaka magia dzieje się w serach_word, ale wiesz, że istnieje std::find?

size_t pos = 0;
while( ( pos = verse.find( ' ', pos ) ) != std::string::npos )
	      verse.erase( pos, 1 );
0
stryku napisał(a):

Nie wiem czy nie złamałem Twojej zasady

bez deklaracji dodatkowej funkcji na przechowywanie zmiennej
bo jej nie rozumiem

O jej myśli wyprzedzały moje czyny.
Chodziło mi o to że nie chciałbym deklarować dodatkowej zmiennej na przechowywanie wartości.

1

A zdradzisz czemu nie chcesz dodatkowej zmiennej?

1 użytkowników online, w tym zalogowanych: 0, gości: 1