Strona główna » C++ » Zadania » Ciągi znaków - Zestaw Zadań

Ciągi znaków - Zestaw Zadań

Wstęp

Poniższy zestaw zadań ma za zadanie sprawdzić wiedzę dotyczącą operacji bitowych. Zadanie zostały posortowane względem poziomu trudności. Zadania powinny być wykonywane w przedstawionej kolejności, ponieważ część zadań łączy się z poprzednimi.

Zadania

Założenia

  1. W zadaniach przyjmujemy, że znaki są indeksowane od 0
  2. Każda funkcja powinna zostać przetestowana
  3. Wszystkie napisane funkcje powinny rzucać wyjątek Niepoprawne dane jeśli wprowadzone dane są nieprawidłowe

Zadanie 1

Napisz funkcje void zamienNaMałe(char* s), która zamieni wszystkie litery w s na małe litery alfabetu łacińskiego. Napisz również funkcję void zamienNaDuze(char* s), która będzie zamieniać wszystkie litery w s na duże. Zakładamy, że znaki inne niż litery nie modyfikujemy.

Przykładowo dla funkcji zamienNaMałe() dla podania s = "Kota ma Ala" poprawnym wynikiem jest "kota ma ala", a w przypadku funkcji zamienNaDuze() dla tego samego argumentu s wynikiem powinno być "KOTA MA ALA".

Zadanie 2

Napisz funkcję void jakwZdaniu(char* s), która zamieni wszystkie pierwsze litery każdego wyrazu w s na duże, a pozostałe na małe.

Przykładowo dla nieczytelnego tekstu s = "hOKUs PoKuS" funkcja powinna zmodyfikować podany tekst na "Hokus Pokus".

Zadanie 3

Napisz funkcję char* zlacz(const char* s1, const char* s2), która zwróci nowa tablice znaków, gdzie zostaną po kolei zapisane słowa s1, a potem s2.

Przykładowo jeśli podane zostaną wyrażenia s1 = "Hokus", s2 = "Pokus" poprawnym wynikiem będzie "HokusPokus".

Zadanie 4

Napisz funkcję char* wplec(const char* s1, const char* s2), która zwróci nowa tablice znaków, gdzie co druga litera pochodzi z innego tekstu. Zakładamy, ze w przypadku, gdy w jednym wyrazie skończą się litery to wystarczy przepisać do końca wyraz dłuższy.

Przykładowo jeśli podane zostaną wyrażenia s1 = "hokus pokus", s2 = "abrakadabra" poprawnym wynikiem będzie "haobkruask apdoakbursa". Innym przykładem jest s1 = "jeden", s2 = "dwa" kiedy prawidłowym wynikiem jest "jdewdaen".

Uwagi do zadań 5. - 8.

W następnych zadaniach przyjmuje się, że pierwszy wyraz ma indeks 1, a jako wyraz przyjmujemy dowolny ciąg znaków złożony z małych i dużych liter alfabetu łacińskiego.

Zadanie 5

Napisz funkcję int policzWyrazy(char* s), która zliczy ile jest wyrazów w podanym wyrażeniu s.

Przykładowo dla s = "ala ma kota" funkcja powinna zwrócić 3.

Zadanie 6

Napisz funkcję char* usunWyraz(char* s, int k), które usunie z podanego wyrażenia s k-ty wyraz i wszystkie nie znaki nie litery po nim do najbliższego wyrazu.

Przykładowo dla s = "ala ma kota" i k = 2 funkcja powinna zmienić tekst s na "ala kota", a k = 3 funkcja zwróci "al ma ".

Zadanie 7

Napisz funkcję char* zamienWyrazy(char* s, int a, int b), która zamieni wyraz pod indeksem a z wyrazem pod indeksem b.

Przykładowo dla s = "ala ma kota", a = 1 i b = 3 funkcja powinna zmienić tekst s na "kota ma ala".

Zadanie 8

Napisz funkcję char* tasujWyrazy(char* s), która zamieni kolejność wyrazów na losową, a następnie zwróci nowy ciąg znaków.

Przykładowo dla s = "ala ma kota" funkcja może przykładowo zwrócić "ma kota ala".