Informatika3-2024/Gyakorlat3
Tartalomjegyzék |
C string
Elemezzük ez a kis kódot:
#include <stdio.h> int main() { char str[] = "puppy"; printf("The word is %s.\n", str); return 0; }
Próbáljuk meg kiírni az str tömb elemeit egyesével mintha egész számok lennének (%d printf-ben)! Az str-nek 6 eleme van (annak ellenére, hogy csak 5 karakterbõl áll).
Beolvasni is tudunk string-et, de ehhez egy elõre létrehozott kellõen nagy char tömb kell:
char str[100]; scanf("%s", str);
Tehát a string-ek valójában karakter tömbök, melyek végén egy úgynevezett lezáró nulla karakter áll. Ennek a karakter kódja '\0'. Egy szokásos string bejáró for ciklus:
for(i = 0; str[i] != '\0'; i++) { printf("%c", str[i]); }
Feladatok
Minden feladathoz nyiss új projektet IDE-ben vagy írd új file-ba ha parancssorból dolgozol!
A következõ feladatokban ne használjunk könyvtári függvényeket, még ha ismerjük is õket. Csak az stdio.h-t használjuk.
Karakter számoló
Írjunk függvényt mely kap egy C string-et és egy karaktert (char) és visszaadja, hogy az adott karakter hányszor szerepel a string-ben.
Leggyakoribb karakter
Írjunk függvényt mely kap egy C string-et és visszaadja az abban található leggyakoribb karaktert.
Súlypont
Írjunk C programot, mely beolvas a felhasználótól tetszõleges számú, de maximum 10 három dimenziós koordinátát és kiszámolja a súlypontjukat (koordináták átlaga). A beolvasás megáll, ha a (0,0,0) pontot adjuk meg (és ez a pont nem lesz része a számolásnak).
Karakter törlõ
Írjunk C függvényt, mely kap két C string-et és az elsõbõl törli a 2.-ban elõforduló összes karaktert. Például a "kiskutya", "ky" bementre "isuta"-ra változtatja az eredeti 1. string-et.
Zárójelezés
Írjunk C függvényt, mely kap egy C string-et és egy n pozitív egész számot. A string-bõl törli n mélységig a zárójeleket. Feltételezhetjük, hogy nincsenek pár nélküli zárójelek és zárójelek nem metszenek egymásba, de egymásba ágyazott és független zárójelek lehetnek. Például
((Volt egyszer) egy) (kis)kutya.
Ebbõl az 1 mélységig törlés a következõt eredményezné:
(Volt egyszer) egy kiskutya.
A 2 mélységi:
Volt egyszer egy kiskutya.
Keresés
Írjunk C függvényt, mely kap két C string-et és megnézi, hogy az elsõben megtalálható-e a második (0-val tér vissza ha nem, 1-el ha igen).
Ha ez megvan, akkor módosítsuk úgy a függvényt, hogy a . (pont) karakter wildcard-ként mûködjön azaz bármilyen karakterre illeszkedjen. Pl a "kiskutya", "s.u.y" bemenetre 1-et adjon vissza.