11 Napisy
Napisz funkcję
length, która jako argument otrzymuje napis i zwraca jako wartość jego długość. Użyj typuchari nie korzystaj ze wbudowanych funkcji poza operacjami wejścia/wyjścia. Stwórz przypadek testowy.Napisz funkcję
countNums, która przyjmuje jako argument tablicę znaków typuchari 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.Napisz funkcję
countVowprzyjmującą jako argument tablicę znaków typuchari 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.Napisz funkcję
cmpStrNewprzyjmującą dwa argumenty typuchar[](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.Napisz funkcję
lexCompprzyjmującą dwa argumenty typuchar[](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.Napisz funkcję
toLowerNew, która przyjmuje jako argument tablicę znaków typuchari 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.Napisz funkcję
toUpperNew, która przyjmuje jako argument tablicę znaków typuchari 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.Napisz funkcję
strCopyNew, która otrzymuje dwa argumenty typuchar[](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.Napisz funkcję
strNcopy, która otrzymuje trzy argumenty: dwie tablice znakównap1,nap2oraz dodatnią liczbę całkowitąn. Funkcja przekopiuje n pierwszych znaków z napisu przechowywanego w tablicynap1do tablicynap2. Jeśli napis w tablicynap1jest krótszy niżnznaków, funkcja przepisuje cały napis. Funkcja gwarantuje, że na końcu napisu w tablicynap2znajdzie się znak null-terminujący ('\0'). Zakładamy, że w tablicynap2jest 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.Napisz funkcję
strConcat, która otrzymuje jako argumenty trzy tablice znaków:nap1,nap2oraznap3. Funkcja zapisuje do tablicynap3konkatenację (połączenie) napisów znajdujących się w tablicachnap1inap2. Zakładamy, że w tablicynap3jest 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.Napisz funkcję
rmLower, która przyjmuje jako argument tablicę znaków typuchari 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.Napisz funkcję
rmDigits, która przyjmuje jako argument tablicę znaków typuchari 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.Napisz funkcję
cutStr, która otrzymuje jako argumenty tablicę znaków typucharoraz dwie liczby całkowitenim, i wycina z otrzymanego napisu znaki o indeksach odndom(przy założeniu, żen<m). Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia. Stwórz przypadek testowy dla tej funkcji.Napisz funkcję
wStrCopyNew, która otrzymuje dwa argumenty typuwchar_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.Napisz funkcję
wStrConcat, która otrzymuje jako argumenty trzy tablice znaków:nap1,nap2oraznap3(użyj typu znakowegowchar_t). Funkcja zapisuje do tablicynap3konkatenację (połączenie) napisów znajdujących się w tablicachnap1inap2. Zakładamy, że w tablicynap3jest 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.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 typwchar_t.Napisz funkcję
rmOdd, której argumentem jest napis. Funkcja ma za zadanie usunąć znaki z napisu o nieparzystych indeksach. Stwórz przypadek testowy.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".
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.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.Napisz funkcję
toLowerNew, która przyjmuje jako argument wskaźnik do napisu typuconst char*i zwraca wskaźnik do nowego napisu, w którym wszystkie duże litery zostały zamienione na małe. Oryginalna tablica znaków pozostaje niezmieniona. Pamiętaj o alokacji pamięci dla nowego napisu. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia i funkcji alokacji pamięci. Stwórz przypadek testowy dla tej funkcji.Napisz funkcję
toUpperNew, która przyjmuje jako argument wskaźnik do napisu typuconst char*i zwraca wskaźnik do nowego napisu, w którym wszystkie małe litery zostały zamienione na duże. Oryginalna tablica znaków pozostaje niezmieniona. Pamiętaj o alokacji pamięci dla nowego napisu. Nie korzystaj ze wbudowanych funkcji języka oprócz operacji wejścia/wyjścia i funkcji alokacji pamięci. Stwórz przypadek testowy dla tej funkcji.