4 - Pole variabilní délky a textové řetězce
int strcmp(const char *str1, const char *str2)
int strncmp(const char *str1, const char *str2, size_t n)
Úkoly na cvičení
Pole variabilní délky
Napište program, který provede inicializaci 1D pole. Velikost pole zadá uživatel ze standardního vstupu. Protože se jedná o inicializaci za běhu programu, je třeba zkompilovat program s podporou standardu C99.
Pole naplňte celými čísly ze standardního vstupu.
Doplňte program tak, aby prošel pole pomocí cyklu a vypsal jednotlivé prvky pole. Zkuste napsat cyklus tak, aby program vypsal pole ve více sloupcích.
Napište funkci, která vypíše prvky pole, které je jejím argumentem. Funkci implementujte v přechozím programu.
Napište funkci, která naplní pole zadané velikosti náhodnými celými čísly v zadaném rozsahu. Vytvořené pole je návratovou hodnotou funkce.
Naplňte pole pomocí funkce z předchozího bodu. Napište funkci, která určí četnost čísel v tomto poli (histogram).
Další úkoly
Napište funkci, která setřídí pole metodou counting-sort. Nesetříděné pole je argumentem funkce, návratovou hodnotou funkce je pole setříděné.
Textové řetězce
Definujte textový řetězec “Everybody likes PRG” a vypište ho. Následně vypište z tohoto řetězce pouze “likes PRG” a nakonec řetězec změňte na “Tom likes PRG” a vypište ho. Přemýšlejte, jak to provést nejúsporněji.
Naprogramujte funkce strlen
, strcmp
a strncmp
.
cat
echo "Hello world" | cat
Hello world
echo "Hello world" | cat2
world
echo "Hello world and hello again " | words
Hello
world
and
hello
again
echo "Hello world and hello again " | words-len
Hello 5
world 5
and 3 <--
hello 5
again 5
tr
echo "Hello world" | cap
hELLO WORLD
echo "Hello world" | tr 'Hl' 'Xk'
Xekko workd
echo "Hello world" | tr 'dweji' '01234'
H2llo 1orl0
echo "Hello world and hello again " | words | cap
hELLO
WORLD
AND
HELLO
AGAIN