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.Napisz funkcję
countSpaces, której argumentem jest napis. Funkcja ma zwrócić liczbę znaków spacji występujących w napisie. Stwórz przypadek testowy. Przykład: dla napisu"abcD"funkcja ma zwrócić 0, dla napisu"ABC def"ma zwrócić 1.Napisz funkcję
lowercaseOdd, której argumentem jest napis. Funkcja ma za zadanie zamienić znaki o nieparzystych indeksach na małe litery (o ile na tym miejscu jest znak wielkiej litery). Stwórz przypadek testowy. Przykład: Wejście:"123ABC", Wyjście:"123aBc".Napisz funkcję
strDig, która dostaje w argumencie napis. Funkcja ma zwrócić długość napisu, gdy napis nie zawiera cyfr. Jeśli napis zawiera cyfrę, to za każdą cyfrę należy dodać 1 do długości napisu i to zwrócić. Stwórz przypadek testowy. Przykład: dla napisu"jdET"funkcja ma zwrócić 4, dla napisu"abc3334"ma zwrócić 11, dla napisu"12"ma zwrócić 4.Napisz funkcję
capitalizeEven, której argumentem jest napis. Funkcja ma za zadanie zamienić znaki o parzystych indeksach na wielkie litery (o ile na tym miejscu jest znak małej litery). Stwórz przypadek testowy. Przykład 1: Wejście:"Python", Wyjście:"PyThOn". Przykład 2: Wejście:"programming", Wyjście:"pRoGrAmMiNg".Napisz funkcję
indexUpperCase, której argumentem jest napis. Funkcja zwraca numer indeksu, na którym występuje ostatnia wielka litera. W przypadku pustego napisu lub braku wielkich liter, funkcja powinna zwracać -1. W zadaniu nie korzystaj z funkcji bibliotecznych poza instrukcjami wejścia/wyjścia. Stwórz przypadek testowy. Przykład: Dla napisu"AbcdR"funkcja powinna zwrócić 5. Dla napisu"ala ma kota"funkcja powinna zwrócić -1.Napisz funkcję
indexLastDigit, której argumentem jest napis. Funkcja zwraca numer indeksu, na którym występuje ostatnia cyfra występująca w napisie. W przypadku pustego napisu lub braku cyfry w napisie, funkcja powinna zwracać -1. W zadaniu nie korzystaj z funkcji bibliotecznych poza instrukcjami wejścia/wyjścia. Stwórz przypadek testowy. Przykład: dla napisu"abc6D"funkcja ma zwrócić 3, dla napisu"ABC def"ma zwrócić -1.Napisz funkcję
removeLastDigit, której argumentem jest tablica znaków. Funkcja usuwa ostatni znak cyfry występującej w tej tablicy znaków. W przypadku pustego napisu lub braku cyfry w napisie, funkcja nie powinna nic robić. W zadaniu nie korzystaj z funkcji bibliotecznych poza instrukcjami wejścia/wyjścia. Stwórz przypadek testowy. Przykład: dla tablicy znaków"a2bc6D"funkcja ma zmienić na"a2bcD".Napisz funkcję
countDigits, której argumentem jest napis. Funkcja ma za zadanie zwrócić liczbę znaków, które są cyframi od 5 do 9. W zadaniu nie korzystaj z funkcji bibliotecznych poza instrukcjami wejścia/wyjścia. Stwórz przypadek testowy. Przykład: dla napisu"ab57cD"funkcja ma zwrócić 2, dla napisu"ABC def"ma zwrócić 0.Napisz funkcję
hexLen, która dostaje w argumencie napis. Funkcja ma zwrócić długość napisu, gdy napis nie zawiera cyfr w systemie szesnastkowym (w przypadku liter uwzględnij małe i duże litery). Jeśli napis zawiera taką cyfrę, to za każdą cyfrę należy odjąć 1 do długości napisu i to zwrócić. Stwórz przypadek testowy. Przykład: dla napisu"ABXYZ4"funkcja powinna zwrócić \(6-3=3\).Napisz funkcję
countHexDigit, której argumentem jest napis. Funkcja ma za zadanie zwrócić liczbę znaków, które są cyframi z systemu szesnastkowego (w przypadku liter policz tylko małe litery). W zadaniu nie korzystaj z funkcji bibliotecznych poza instrukcjami wejścia/wyjścia. Stwórz przypadek testowy. Przykład: dla napisu"ABC6xyza"funkcja powinna zwrócić 2.Napisz funkcję
hexLen, która dostaje w argumencie napis. Funkcja ma zwrócić długość napisu, gdy napis nie zawiera cyfr w systemie szesnastkowym (w przypadku liter uwzględnij małe i duże litery). Jeśli napis zawiera taką cyfrę, to za każdą cyfrę należy dodać 1 do długości napisu i to zwrócić. Stwórz przypadek testowy. Przykład: dla napisu"ABXYZ4"funkcja powinna zwrócić \(6+3=9\).Napisz funkcję
countHexDigit, której argumentem jest napis. Funkcja ma za zadanie zwrócić liczbę znaków, które są cyframi z systemu szesnastkowego (w przypadku liter policz tylko duże litery). W zadaniu nie korzystaj z funkcji bibliotecznych poza instrukcjami wejścia/wyjścia. Stwórz przypadek testowy. Przykład: dla napisu"ABC6xyza"funkcja powinna zwrócić 4.