Zajęcia 8 (14/01/2014)

Wczytywanie łańcucha

Zaimplementuj bezpieczną wersję funkcji gets(), która posiada dodatkowy argument zabezpieczający przed przepełnieniem podanej tablicy znakowej. Funkcja o nazwie readline, czyta linię ze standardowego wejścia (usuwa ją stamtąd) i umieszcza ją w podanej tablicy znakowej. Ostatni znak linii (znak nowego wiersza - '\n') zastępuje zerem (znakiem '\0'). Funkcja nie wczyta więcej niż n znaków oraz przerywa wczytywanie po napotkaniu końca pliku EOF. Do wczytywania kolejnych znaków ze standardowego wejścia użyj funkcji getchar().

Dane: tablica znakowa t oraz liczba całkowita n
Wynik: funkcja zwraca wskaźnik do tablicy t zawierającej wczytany łańcuch znakowy (linia pobrana ze standardowego wejścia ale nie więcej niż n znaków) lub wartość NULL w przypadku natrafienia na koniec pliku przy wczytywaniu pierwszego znaku ze strumienia.

Napisz program, który używając napisanej funkcji readline, czyta kolejno wszystkie linie tekstu ze standardowego wejścia (z klawiatury). Każdorazowo po wczytaniu kolejnej linii tekstu jest ona wyświetlana na standardowym wyjściu (na ekranie).

Ilość wyrazów w łańcuchu

Dodaj do programu z poprzedniego zadania funkcję o nazwie wordcount, która dla podanego łańcucha zwraca ilość wyrazów umieszczonych w łańcuchu. Zakładamy, że wyrazem jest ciąg znaków składający się wyłącznie z liter. Każdy inny znak niż litera stanowi separator wyrazów.

Dane: łańcuch s
Wynik: liczba całkowita określająca ilość wyrazów w łańcuchu s.

Zmodyfikuj program z poprzedniego zadania w taki sposób, aby każdą wypisywaną linię tekstu poprzedzał liczbą wyrazów występujących w tym łańcuchu.

Przykład (kolejno podane linie oraz uzyskana odpowiedź programu):

Ala ma kota
3 Ala ma kota
Ten program jest bardzo $%^@^&*!^&*#
4 Ten program jest bardzo $%^@^&*!^&*#
_W_tym_wierszu_brak_____spacji____
5 _W_tym_wierszu_brak_____spacji____

Odwracanie kolejności znaków w łańcuchu

Dodaj do programu z poprzedniego zadania funkcję o nazwie odwracanie, która w podanym łańcuchu znakowym odwraca kolejność liter.

Dane: łańcuch s
Wynik: łańcuch s, w którym odwrócono kolejność znaków. Wartością zwracaną jest wskaźnik (adres) s

Zmodyfikuj program z poprzedniego zadania w taki sposób, aby wypisywał na ekranie kolejne linie z odwróconą kolejnością liter.

Przykład (kolejno podane linie oraz uzyskana odpowiedź programu):

Ala ma kota
3 atok am alA
Ten program jest bardzo $%^@^&*!^&*#
4 Ten program jest bardzo $%^@^&*!^&*#
_W_tym_wierszu_brak_____spacji____
5 ____ijcaps_____karb_uzsreiw_myt_W_
(kajak)
1 )kajak(

Zamiana łańcucha na liczbę

Napisz funkcję o nazwie str2int, która zamieni podany łańcuch znakowy na liczbę całkowitą

Napisz funkcję o nazwie str2float, która zamieni podany łańcuch znakowy na liczbę typu float

Napisz funkcję o nazwie int2str, która podaną liczbę całkowitą zamieni na łańcuch

Kalkulator dużych liczb

Napisz program obliczający poprawnie sumę liczb całkowitych posiadających nawet do 1000 cyfr.

Napisz program obliczający poprawnie iloczyn liczb całkowitych posiadających nawet do 1000 cyfr.

Napisz program obliczający poprawnie iloraz liczb całkowitych posiadających nawet do 1000 cyfr. Uzyskany wynik wyświetlany jest z precyzją do 2 miejsc po przecinku.