Osoittimet¶
Jäsennä merkkijono (1p)¶
Laadi funktio, joka paloittelee merkkijonon annetun merkin perusteella ja lisäksi vielä etsii paloista monesko niistä vastaa täsmälleen toista annettua merkkijonoa.
Funktion prototyyppi on muotoa:
int8_t parse(char *str, char *sep, char *arg);
Jossa
str
annettu merkkijono, sep
on erotin ja arg
merkkijono jota etsitään. Funktio palauttaa -1
, jos etsittävää merkkijonoa ei löydy, muutoin palautetaan sen palasen indeksin (alkaen nollasta) joka on sama kuin etsittävä merkkijono. Esimerkki. Funktiolle annetaan merkkijono "Alpha,Bravo,Charlie,Delta", separaattoriksi "," ja etsittävä merkkijono "Charlie". Tällöin funktio palauttaa 2.
Vinkki. Tässähän nyt kannattaa käyttää string.h-kirjaston valmiita funktioita. Esimerkiksi
strncmp
:llä voi vertailla merkkijonojen vastaavuutta.
Vihjeet
Viestit
Palindromi (2p)¶
Laadi funktio, joka tarkistaa onko annettu merkkijono palindromi. Funktio palauttaa
0
, jos merkkijono on palindromi. Funktio palauttaa n
, jos merkkijono ei ole palindromi, jossa n
on palindromin vasemmalta laskien rikkovan kirjaimen järjestysnumero.Esimerkki.
Merkkijonolla "huhhuh" funktio palauttaa 0 Merkkijonolla "huhhoh" funktio palauttaa 2
Käytä funktiolle prototyyppiä
uint8_t palindromi(char *s, uint8_t length);
, jossa s
on merkkijono ja length
sen pituus.
Vihjeet
Viestit
Hexspeak (2p)¶
Write a function that converts individual characters of a given string into hexspeak and prints out the modified string.
The conversion rules are the following:
- Characters 'o' ja 'O' -> '0' (zero)
- Characters 'l' ja 'L' -> '1'
- Characters 's' ja 'S' -> '5'
- Characters 't' ja 'T' -> '7'
- Characters 'r' ja 'R' -> '12' (two numbers)
- Character 'G' -> '6'
- Character 'g' -> '9'
- All other characters as they are
Use function prototype
int hexspeak(char *str, int len);
. The function returns the number of changed characters in the original string. Hint. It could be a good idea to use switch-case clause here.
Vihjeet
Viestit
Anna palautetta
Koitko tämän tehtävän hyödylliseksi oppimisen kannalta?
Kommentteja tehtävästä?
Anna palautetta
Kommentteja tehtävästä?