Kurs ANSI C z elementami C++ Lista zadań 6 16.11.2006
Transkrypt
Kurs ANSI C z elementami C++ Lista zadań 6 16.11.2006
Kurs ANSI C z elementami C++ Lista zadań 6 16.11.2006 (15/0) 1. Napisać definicje następujących trzech funkcji wykonujących operacje na napisach: int strncmp(s,t,n) - porównywanie tekstu z t z tekstem z s przy uwzględnieniu co najwyżej n znaków. char *strrchr(char *string, char character) - zwraca wskaźnik na ostatnie wystąpienie litery character w tekście wskazywanym przez string. Jeśli litera nie występuje zwracany jest NULL. int strspn(char *s1,char *s2) - zwraca długość początkowej części tekstu wskazywanego przez string1, która składa się tylko z znaków wchodzących w skład string2. W definicjach tych funkcji można używać tylko operacji na wskaźnikach (czyli nie wolno korzystać z indeksowania tablic). (15/10) 2. Napisz funkcję int ostwystap(char *wzor,char *napis), która zwraca ostatnią pozycję występowania ciągu znaków wzor w tekście napis, lub -1 jeżeli nie ma takiej pozycji. Następnie użyj jej w programie wypisującym wszystkie wiersze (od momentu wystąpienia wzorca) ze standardowego wejścia, które zawierają dany tekst. Szukany tekst powinien być parametrem wywołania programu. Do przeglądania tablic znaków należy używać wskaźników. (20/20) 3. Zaimplementuj grę saper w konsoli. Rozmiar planszy, oraz ilość bomb powinna być definiowana jako stałe w źródle programu. Plansza w trakcie rozgrywki może wyglądać następująco: XXX1..... X321...11 X2...113X X411.1X3X XXX1.1121 1211..... ......... 111...... XX1...... Pozostały 3 nie zaminowane pola. Podaj pozycję x,y pola do odkrycia. Program powinien automatycznie odkrywać pola 0 (nie zawierające bomb w sąsiedztwie). Poszczególne oznaczenia: X – nie odkryte pole 1-8 – ilość bomb w sąsiedztwie . - odkryte pole * - bomba