Mam problem z takim czyms :
Wczytaj wyraz z powtarzającymi się literkami i wypisz wyraz składający się z pojedynczych liter.
Przykłady
Wejście
AAlllaa
Wyjście
Ala
Wejście
ppppppiiiiessssssss
Wyjście
pies
Wejście
koooooooot
Wyjście
kot
nie wiem jak do tego sie zabrac
Porownywanie znakow
- osa
- Użytkownik
- Posty: 272
- Rejestracja: 18 lut 2010, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 1 raz
- Pomógł: 37 razy
Porownywanie znakow
nie wiem w czym chcesz to robić. jeżeli w c, to proponuję wczytać do stringa (niech nazywa się np c)
a potem porównywać w pętli c[n] z c[n+1] bo string ma tę super zaletę że jest to możliwe Technicznie jak to zrobić dokładnie to już sam wykmiń, ale ja proponuję żeby porównywać w pęli od końca wyrazu (jest też funkcja zwracająca długość wyrazu w stringu, ale nie pamiętam jaka). Wtedy po sprawdzeniu czy c[n]=c[n+1]- jeżeli się nie równa, super, przechodzimy dalej, jeżeli się równa, to usuwamy c[n+1] i znowu pętlą robimy, że c[n+1]=c[n+2], c[n+2]=c[n+3]... itd. Tylko się musisz pozbyć ostatniego znaku. pewnie zadziała coś w style c[m]="void". i przechodzimy dalej do sprawdzania czy c[n]=c[n-1] ma to tę zaletę, że idąc do przodu ominęlibyśmy ciągi po 3 znaki, a tak nie ominiemy. Mam wrażenie że nie pomogłem jakoś bardzo bardzo, ale mam nadzieję że chociaż trochę
a potem porównywać w pętli c[n] z c[n+1] bo string ma tę super zaletę że jest to możliwe Technicznie jak to zrobić dokładnie to już sam wykmiń, ale ja proponuję żeby porównywać w pęli od końca wyrazu (jest też funkcja zwracająca długość wyrazu w stringu, ale nie pamiętam jaka). Wtedy po sprawdzeniu czy c[n]=c[n+1]- jeżeli się nie równa, super, przechodzimy dalej, jeżeli się równa, to usuwamy c[n+1] i znowu pętlą robimy, że c[n+1]=c[n+2], c[n+2]=c[n+3]... itd. Tylko się musisz pozbyć ostatniego znaku. pewnie zadziała coś w style c[m]="void". i przechodzimy dalej do sprawdzania czy c[n]=c[n-1] ma to tę zaletę, że idąc do przodu ominęlibyśmy ciągi po 3 znaki, a tak nie ominiemy. Mam wrażenie że nie pomogłem jakoś bardzo bardzo, ale mam nadzieję że chociaż trochę
- osa
- Użytkownik
- Posty: 272
- Rejestracja: 18 lut 2010, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 1 raz
- Pomógł: 37 razy
Porownywanie znakow
jancza pisze:zapomnialem dopisac chce to zrobic w c++ xd
Masz szczęście, bo to co ja napisałem jest do c++ a nie do c, jak napisałem . W c nie ma stringów
-
- Użytkownik
- Posty: 4094
- Rejestracja: 10 lut 2008, o 15:31
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 12 razy
- Pomógł: 805 razy
Porownywanie znakow
Kod: Zaznacz cały
znak c=pobierz_następny_znak(słowo);
znak d;
dopóki(c!=
)
{
wypisz(c);
wykonuj
{
d=pobierz_następny_znak(słowo);
}
dopóki(c==d);
c=d;
}