Buna ziua.Am si eu o problema si am nevoie de ajutor.Problema suna cam asa :
Pentru un text dat ,sa se determine numarul de cuvinte si numarul de numere prezente.
se da un fisier cu propozitia „Nini are o carte cu 125pagini”.
Multumesc
funnker1user (0)
Intrebarea e:
daca stringul era: „Nini are o carte cu 125 pagini”(deci cu spatiu dupa 125).
Acel 125 va fi in mod clar interpretat ca numar, dar va fi interpretat si drept cuvant?
Adica in textul „Nini are o carte cu 125 pagini” sunt 6 sau 7 cuvinte?
In orice caz regula generala e asta:
Pentru numarul de cuvinte nu cred ca e mare dificultate intrucat trebuie sa numeri de fapt spatiile+1.
Pentru numarul de numere:
Te poti folosi de functia isdigit() din <ctype.h>.
Parcurgi textul char cu char iar in momentul in care ai intalnit prima cifra, inseamna ca ai intalnit un numar. Variabila in care numeri numerele nu se va incrementa pentru urmatoarele cifre ci doar pentru prima.
Ca sa faci asta, ai nevoie de o variabila auxiliara care este true daca elementul curent este cifra si false daca este alt caracter. Contorul se va incrementa daca elementul curent este numar SI daca variabila auxiliara este false. Dupa acest if, mai ai un if in care verifici daca elementul curent este cifra. Daca da => variabila auxiliara va fi true. Daca nu => va fi false.
In esenta in aux retii 1 daca elementul anterior a fost cifra sau 0 daca a fost altceva iar contorul se incrementeaza doar daca aux e 0 si daca elementul curent e cifra.
in speta: „abc123def”.
Cand se ajunge la cifra ‘1’, contorul se incrementeaza pentru ca elementul anterior:’c’ nu era numar.
Cand se ajunge la cifra ‘2’. contorul nu se mai incrementeaza pentru ca elementul anterior: ‘1’ era numar
Daca se cere ca in mod distinct numerele care au spatiu in stanga si in dreapta sa nu fie interpretate ca si cuvinte atunci scazi din numarul total de cuvinte, numarul de numere.