- Készíts egy programot, ami a standard bemenetről szavakat olvas (ha már ismered a fájlkezelő műveleteket, fájlból is olvashatod a szavakat). Az alábbi feladatok megoldásához használj standard string függvényeket (
#include <string.h>
).- Írd ki az 5 karakternél hosszabb szavakat (
strlen
). - Írd ki az x karaktert tartalmazó szavakat (
strchr
). - Írd ki az alma szót tartalmazó szavakat (pl. dalmata, almafa) (
strstr
). - Vizsgáld meg, hogy szerepel-e a beolvasott szavak között a "cica" szó (
strcmp
). - Írd ki a számjegyeket tartalmazó szavakat (
strpbrk
).
- Írd ki az 5 karakternél hosszabb szavakat (
- Mi történik?
what-0.c
what-1.c
what-2.c
what-3.c
what-4.c
what-5.c
- (
what-6.c
) - (
what-7.c
)
- Parancssori argumentumok kezelése:
2-command-line-args.c
- Írjuk ki a parancssori argumentumok számát. Miért nem lesz ez a szám kevesebb mint 1?
- Írjunk egy olyan szorzást végző programot, amely egy számlálós ciklusban összeadja az "első" paraméterül kapott számot a "második" paraméter értékeszer, majd a végeredményt kiírja a konzolra. (tipp: nézz utána az
atoi
függvénynek) - Írjuk meg a faktoriális műveletet rekurzió segítségével. Magyarázzuk el a rekurzív függvények két fő komponensét (termináló eset, és rekurziót hívó eset).
rec-sample.c
- Filekezelés:
0-write.c
1-read.c
- Írjuk egy programot, ami eltárolja a nevünket egy "player.txt" nevű fájlban.
- Írjunk egy programot, amely egy egész számokat tartamalzó tömb páros számait beleírja egy "even_numbers.txt" nevű fájlba. Futtassuk le újra a programot, és nézzük meg, hogy bővült-e a fájl tartalma. (Nem fog, ha
"w"
-vel vagy"w+"
-al nyitottuk meg) - Módosítsuk az előző programot úgy, hogy a fájl tartalmának felülírása helyett kibővül a fájl az újabb kiírni kívánt adatokkal.
- Egy új programban olvassuk vissza a fájl tartalmát, és adjuk össze a benne tárolt számokat. Írjuk ki az összeget. A fájlnevet a parancssori argumentumból nyerjük ki!
- Írjunk egy
LOG-INFO-WARNING-ERROR
kiíró függvényt. Az első paramétere legyen egy pozitív egész szám, ami az üzenet típusát hivatott jelezni (pl.:0-INFO
,1-WARNING
,2-ERROR
, minden más pedigLOG
). A második paramétere legyen a kiírni kívánt üzenet.switch-case
vezérléssel döntsük el, hogy mit írunk ki a kiírni kívánt üzenet elé. (pl.:"LOG - user signed in."
,"ERROR - could not connect to server."
). Nézzük meg, hogy mi történik, ha nem írunk kibreak
-eket az egyescase
-ek végére . Nézzük meg, hogy mi történik, ha nem írunkdefault
ágat.
- Írjunk egy programot, ami egy tetszőleges tartalmat ír egy fájlba. A fájl írása után ne zárjuk le a fájlt, hanem rakjunk egy beolvasást, ami megakasztja a programot. Nézzük meg, hogy mit tartalmaz a fájl. (Ha
ssh
-n keresztül dolgozunk, akkor nyissunk egy új ssh kapcsolatot.) Engedjük tovább a programot, hogy fusson végig, majd nézzük meg ismét, hogy mi a fájl tartalma! - Írjuk meg a keresés tételét egy hátultesztelős ciklussal! Adjuk vissza a tömbnek azt az indexét, ahol található a keresett elem. Találat esetén lépjünk ki a ciklusból (
break
). - Írjuk meg a
toLowerCase
függvényt. A függvény kapjon egy karaktertömböt, és minden nagybetűjét (ASCII táblázatban kikereshető, hogy mely nagybetűs karaktereknek mi az értéke) írjuk át a neki megfelelő kisbetűre! Ezt követően írjuk ki, hogy milyen betűt módosítottunk. Ha nem kell módosítani a karakteren, akkor ne csináljuk a karakterrel semmit (continue
). - Írjunk programot mely a standard inputról beolvasott stringben megkeresi a magánhangzókat és azokat eggyel eltolja (
a->e
,e->i
,i->o
,o->u
,u->a
), minden mást változatlanul hagy. A megoldásod szervezd úgy, hogy legyen egychange
nevű függvényed mely egyetlen karaktert dolgoz fel: cseréli ha szükséges vagy változatlan hagyja, majd ezt visszaadja. Adj több megoldást az alábbiak szerint:- A string feldolgozását különböző ciklusokkal old meg (
for
,while
,do
-while
) - törekedj minél kompaktabb megoldásokra - A
change
függvényt valósítsd meg:- verzió: tisztán
if
-ek használatával - verzió:
switch
-case
használatával - verzió: 2 tömb (
from
,to
) használatával, melyekben előre rögzítve vannak a cserélendő karakter párok - verzió: 1 tömb használatával hogyan oldható meg?
- verzió: tisztán
- A string feldolgozását különböző ciklusokkal old meg (
- Készíts egy programot, ami kiírja egy fájl n-edik sorát. A fájl nevét és az n értéket parancssori argumentumként lehessen megadni.
- Készíts egy programot, ami egy fájlban megszámolja a különböző szavak számát. A fájlon végighaladva tároljuk el a megtalált szavakat egy tömbben, ha az még nem szerepelne benne. (Tehát, definiáljunk egy halmaz-szerű tömbös implementációt.)
- Készíts egy programot, ami egy fájl tartalmát lefordítja Morse-kódra. Az eredmény egy újonnan létrehozott fájlba kerüljön. A bemeneti és kimeneti fájlok neveit parancssori argumentumokban lehessen megadni.