skip to Main Content

K&R ANSI C: Rozwiązanie ćwiczenia 3.3

Ostatnio kupiłem książkę Język C Programowanie. Brian W. Kernighan oraz Dennis M. Ritchie. Jest naprawdę super, książka wymaga osobnej recencji w osobnym poście.

Książka posiada w sobie ćwiczenia i oto publikuje jedno z nich.

Ćwiczenie 3.3 Napisz funkcję expand(s1,s2), która odczytuje skrócony  zapis typu a-z w ciągu s1 i zapisuje w ciągu s2. jego odpowiednik abc…xyz. Zadbaj o obsługę dużych i małych liter oraz cyfr. Zwróć uwagę na obsługę takich ciągów jak a-b-c, a-z0-9. Znak 0 na początku lub na końcu ciągu powinien być interpretowany jako zwykły znak a nie jako część skrótu.

Podczas pisania doszedłem do takich wniosków

Wnioski: Nieważne jak funkcja wygląda podczas tworzenia, najpierw rozwiązanie problemu potem poprawianie wydajności oraz wygląd wizualny.

Edycja: Dodana funkcja obsługi zakresów o odwróconej kolejności np. z-a -> zyx..cba
Edycja 2: Funkcja nie sprawdza błędnie wprowadzonego ciągu. typu -1-4 powinno być —1-4
Edycja 3(27-04-2011): Naprawiłem błąd z wyrazami niebędącymi w ciągu(tzw. swobodne).

Paweł Sołtysiak

Programista, domowy kucharz i "amator amerykańskiej polityki".
Zbieram informacje z całej sieci, po odrzuceniu chwastów i dodaniu swojej opinii publikuje na blogu.

Back To Top