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

ucinanie ostaniej literki

Ostatnio zmodyfikowano 2018-02-06 11:42
Autor Wiadomość
robertos18
Temat założony przez niniejszego użytkownika
ucinanie ostaniej literki
» 2018-02-06 03:15:39
Gdy zmieniam litery z miejsca parzystego na nieparzyste nie wypisuje mi ostatniej literki w czym moze tkwic problem ?
C/C++
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    string a;
    cin >> a;
    string wynik;
    for( int i = 0; i < a.length() - 1; i += 2 )
    {
        wynik += a[ i + 1 ];
        wynik += a[ i ];
    }
    cout << wynik;
    return 0;
}
P-169284
YooSy
» 2018-02-06 08:27:41
Gdy zmieniam litery z miejsca parzystego na nieparzyste nie wypisuje mi ostatniej literki w czym moze tkwic problem ?
Podaj przykład poprawnego i niepoprawnego kodu.
P-169285
darko202
» 2018-02-06 08:45:05
można powiedzieć, że dla długości nieparzystej stringa ewidentnie sięgasz poza zakres

np. 1

 wynik += a[1 ]; // tu znak końca string ląduje na wynik[0]
 wynik += a[0 ]; // ? co się dzieje, jeśli w ogóle to wykonuje
P-169286
mateczek
» 2018-02-06 11:42:02
prawie wszystko ok po prostu nie kopiujesz ostatniego znaku

string imie="ala";
rozmiar =3
rozmiar -1=2

for (int i =0;i<2;i+=2) //robisz jedną iterację. przez co nowy napis będzie "la" Jeśli rozmiar wyniku mniejszy od rozmiaru źródła dodaj ostatni znak. lub tak jak niżej

C/C++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
    string a = "ala";
    for( size_t i = 0; i < a.length() - 1; i += 2 )
    {
        std::swap( a[ i ], a[ i + 1 ] ); //zamień
    }
    cout << a;
    return 0;
}
P-169291
« 1 »
  Strona 1 z 1