grish_em_all [ Hairless Cobra ]
Zwracam się o pomoc do programistów (C)
Mam do napisania niewielki programik w języku C, ale nie mam za chiny pomysłu jak go ugryźć. Program ma sprawdzić, czy podany wyraz jest palindromem (czyta się go tak samo od początku i od końca). Wiem, że to trzeba porównać pierwszą i ostanią literę wyrazu, a następnie "schodzić do środka". Ale jak to napisać? ;) Kolebie mi się między uszami, że to trzeba każdy znak odłożyć na stosie, a następnie za pomocą wskaźników odwoływać się do odpowiednich komórek pamięci i porównywać zawartość. Dawno w C nic nie pisałem i lekka skleroza mnie dopadła :D Dodam tylko, że nie szukam jelenia, który napisze to za mnie. Wystarczy, że ktoś wytłumaczy mi mechanizm, jak to zrobić, (ewentualnie stworzy samą procedurę porównywania poszczególnych znaków i wytłumaczy jak to działa), z samym programem już sobie poradzę
Dzięki z góry za wskazówki :)
Pozdrawiam, Grish
Katane [ Useful Idiot ]
Masz wczytany wyraz do talbicy charow. Nastepnie w petli do drugiej tablicy zapisujesz ten wyraz od konca. Pozniej porownujesz efekty funkcja strcmp i voila.
209458 [ Junior ]
Jeżeli słowo masz wczytane do tablicy, powiedzmy
char* s;
to wystarczy pętla przelatująca słowo do połowy:
int i;
int l;
l = strlen(s);
i = 0;
while ((2*i < l-1) && (s == s[l-i-1]) i++;
// trzeba sprawdzić czy wyszedł z pętli bo skończył, czy znalazł niepasujące litery
if (2*i < l-1) nie ejst else palindrom
grish_em_all [ Hairless Cobra ]
209458 --> działa, ogromne dzięki :) Nawet sam się połapałem jak to działa i dlaczego trza to zapisać tak a nie inaczej :D
Katane --> Tobie też dzięki za naprowadzenie :)
EOT