9  Napisy

  1. Napisz funkcję length, która jako argument otrzymuje napis i zwraca jako wartość jego długość. Użyj typu char i nie korzystaj ze wbudowanych funkcji poza operacjami wejścia/wyjścia. Stwórz przypadek testowy.

  2. Napisz funkcję countNums, która przyjmuje jako argument tablicę znaków typu char i zwraca liczbę znaków w tej tablicy, które są cyframi. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla swojej funkcji.

  3. Napisz funkcję countVow przyjmującą jako argument tablicę znaków typu char i zwracającą liczbę znaków w tej tablicy, które są samogłoskami z alfabetu łacińskiego. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  4. Napisz funkcję cmpStrNew przyjmującą dwa argumenty typu char[] (tablice znaków) i zwracającą 1, jeśli napisy są identyczne, oraz 0 w pozostałych przypadkach. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  5. Napisz funkcję lexComp przyjmującą dwa argumenty typu char[] (tablice znaków) i zwracającą 1, jeśli pierwszy napis jest wcześniej w porządku leksykograficznym niż drugi, oraz 0 w pozostałych przypadkach. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  6. Napisz funkcję toLowerNew, która przyjmuje jako argument tablicę znaków typu char i zamienia w niej wszystkie duże litery na małe. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  7. Napisz funkcję toUpperNew, która przyjmuje jako argument tablicę znaków typu char i zamienia w niej wszystkie małe litery na duże. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  8. Napisz funkcję strCopyNew, która otrzymuje dwa argumenty typu char[] (tablice znaków): źródłową i docelową. Funkcja przepisuje napis znajdujący się w tablicy źródłowej do tablicy docelowej. Zakładamy, że w tablicy docelowej jest wystarczająco dużo miejsca. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  9. Napisz funkcję strNcopy, która otrzymuje trzy argumenty: dwie tablice znaków nap1, nap2 oraz dodatnią liczbę całkowitą n. Funkcja przekopiuje n pierwszych znaków z napisu przechowywanego w tablicy nap1 do tablicy nap2. Jeśli napis w tablicy nap1 jest krótszy niż n znaków, funkcja przepisuje cały napis. Funkcja gwarantuje, że na końcu napisu w tablicy nap2 znajdzie się znak null-terminujący ('\0'). Zakładamy, że w tablicy nap2 jest wystarczająco dużo miejsca. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  10. Napisz funkcję strConcat, która otrzymuje jako argumenty trzy tablice znaków: nap1, nap2 oraz nap3. Funkcja zapisuje do tablicy nap3 konkatenację (połączenie) napisów znajdujących się w tablicach nap1 i nap2. Zakładamy, że w tablicy nap3 jest wystarczająco dużo miejsca. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  11. Napisz funkcję rmLower, która przyjmuje jako argument tablicę znaków typu char i usuwa z niej wszystkie znaki będące małymi literami. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  12. Napisz funkcję rmDigits, która przyjmuje jako argument tablicę znaków typu char i usuwa z niej wszystkie znaki będące cyframi. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  13. Napisz funkcję cutStr, która otrzymuje jako argumenty tablicę znaków typu char oraz dwie liczby całkowite n i m, i wycina z otrzymanego napisu znaki o indeksach od n do m (przy założeniu, że n<m). Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  14. Napisz funkcję wStrCopyNew, która otrzymuje dwa argumenty typu wchar_t[] (tablice znaków): źródłową i docelową. Funkcja przepisuje napis znajdujący się w tablicy źródłowej do tablicy docelowej. Zakładamy, że w tablicy docelowej jest wystarczająco dużo miejsca. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  15. Napisz funkcję wStrConcat, która otrzymuje jako argumenty trzy tablice znaków: nap1, nap2 oraz nap3 (użyj typu znakowego wchar_t). Funkcja zapisuje do tablicy nap3 konkatenację (połączenie) napisów znajdujących się w tablicach nap1 i nap2. Zakładamy, że w tablicy nap3 jest wystarczająco dużo miejsca. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.

  16. Napisz funkcję w16, której argumentem jest napis. Jeśli napis zawiera inne znaki niż cyfr, to funkcja ma zwracać zero. Jeśli napis zawiera tylko cyfry, funkcja ma zwrócić liczbę całkowitą powstałą z przepisania kolejno znaków cyfr. Załóż, że napis jest długości dokładnie 3. W zadaniu nie korzystaj z funkcji bibliotecznych poza instrukcjami wejścia/wyjścia. Stwórz przypadek testowy. Wykorzystaj w rozwiązaniu typ wchar_t.

  17. Napisz funkcję rmOdd, której argumentem jest napis. Funkcja ma za zadanie usunąć znaki z napisu o nieparzystych indeksach. Stwórz przypadek testowy.

  18. Napisz funkcję copyEveryThird, której argumentem jest napis. Funkcja ma za zadanie zwrócić nowy napis, który zawiera tylko co trzeci znak z oryginalnego napisu. Stwórz przypadek testowy.

Przykład: Dla napisu "ABCXYZ" funkcja powinna zwrócić "AX".

  1. Napisz funkcję indexLower, której argumentem jest napis. Funkcja zwraca numer indeksu, na którym występuje pierwsza od lewej mała litera. W przypadku pustego napisu lub braku małych liter, funkcja powinna zwracać zero. W zadaniu nie korzystaj z funkcji bibliotecznych poza instrukcjami wejścia/wyjścia. Stwórz przypadek testowy.

  2. Napisz funkcję countOdds, której argumentem jest napis. Funkcja ma zwrócić liczbę znaków cyfr nieparzystych występujących w napisie. Stwórz przypadek testowy.