Cerința
Să se scrie o funcţie denumită extrageCuvant
care să primească ca parametri trei şiruri de caractere în această ordine: destinatie, sursa, separatori şi un număr întreg prin intermediul căruia se va specifica numărul cuvântului ce se doreşte a fi preluat din şirul de caractere sursă şi pus în şirul destinaţie.
În şirul separatori se vor găsi o serie de simboluri ce sunt utilizate pentru a despărţi cuvintele (de exemplu virgulă sau spaţiu, etc.).
Dacă funcţia a copiat cu succes cuvântul căutat în şirul destinaţie, va returna valoarea 1
. Altfel va returna valoarea 0
(de exemplu dacă textul conţine doar trei cuvinte şi se doreşte găsirea cuvântului al patrulea).
Date de intrare
Funcţia va primi patru parametri în următoarea ordine: şirul destinaţie, şirul sursă, şirul conţinând lista simbolurilor considerate separatori de cunvinte şi poziţia cuvântului dorit, poziţie indexată de la 0
(primul cuvânt este cel de pe poziţia 0
).
Date de ieșire
Funcţia va returna 1
dacă a reuşit să găsească un cuvânt pe poziţia căutată şi în şirul destinaţie va fi copiat acest cuvânt sau 0
în caz contrar.
Restricții și precizări
Nu se va folosi nici o funcţie de prelucrare a şirurilor de caractere (nu se va include cstring
).
Exemplu:
Apelul:
extrageCuvant(dest, "Un mar, doua mere, trei mere, toata livada !", ", !", 0);
va returna valoarea 1
şi va copia şirul Un
în dest
.
Apelul:
extrageCuvant(dest, "Un mar, doua mere, trei mere, toata livada !", ", !", 4);
va returna valoarea 1
şi va copia şirul trei
în dest
.
Apelul:
extrageCuvant(dest, "Un mar, doua mere, trei mere, toata livada !", ", !", 8);
va returna valoarea 0
, conţinutul variabilei dest
nu va fi relevant în acest caz (nu va fi testat).
Explicație
Cuvintele din şirul Un mar, doua mere, trei mere, toata livada !
atunci când sunt despărţite de simbolurile virgulă, spaţiu şi semnul exclamării sunt acestea: Un
, mar
, doua
, mere
, trei
, mere
, toata
, livada
. Ele sunt pe poziţiile 0
, 1
, …, 7
. Căutarea cuvântului de pe poziţia 0
va copia în destinaţie cuvântul Un
şi funcţia va returna valoarea 1
, în timp ce apelul pentru al optulea cuvânt va avea ca valoare rezultată 0
.