Salut,
Astazi am avut teza la informatica. Am primit o problema banala, pe care am rezolvat-o cred eu corect :
"Se citeste de la tastatura un sir de caractere (doar litere mici). Sa se modifice litera de la inceputul fiecarui cuvant in litera mare."Rezolvarea mea suna astfel :
//declarare, citire sir
for(i=0;i<strlen(s);i++)
if(s[i-1]==' ' || s[i-1]==NULL)
s[i]=toupper(s[i])
Problema este ca, pentru a rezolva si primul cuvant din propozitie am pus conditia || s[i-1]==NULL, deoarece inaintea primei litere nu se afla nimic, adica
NULL.
Dupa ce i-am explicat profesoarei modul meu de rezolvare a problemei mi-a spus ca este complet gresit, desi eu am demonstrat ca rezolvarea mea este corecta. Motivatia ei a fost faptul ca
s[-1] este in afara zonei de memorie si ca este o simpla coincidenta faptul ca am gasit
NULL pe
s[-1].
Nu sunt de acord, deoarece am verificat si am observat ca un sir de caractere este delimitat intotdeauna de
NULL, mai exact pe
s[-1] intotdeauna va exista
NULL.
Ce parere aveti? Este gresita rezolvarea mea?
Multumesc!