1.Subprogramul numarare primeste prin parametrul s un sir de maxim 255 de caractere, care pot fi litere mari,mici sau cifre, si returneaza prin parametrul nr1 numarul literelor mari din sir
a)def. completa a subprogramului numarare.
b)Fisierul siruri.txt contine: pe primul rand un numar nat n, apoi pe fiecare din urmatoarele n randuri, cate un sir de maxim 255 de caractere alcatuit din litere mari, mici si cifre.Realizati un program care, folosind apeluri utile ale subprogramului numarare, afiseaza pe ecran, pe un rand, acel sir din fisier care contine cele mai multe majuscule.Daca exista in fisier 2 sau mai multe siruri cu acelasi nr maxim de majuscule, se va afisa ultimul dintre acestea.
Asta este problema, am scris un mic roman la ea dar am rezolvat-o( nu m-am pot folosi decat de strlen deoarece celelalte functii nu le-am invatat la scoala. ). As vrea o varianta mai scurta si mai eficienta.
Asa am rezolvat-o:
#include<iostream.h>
FILE *f;
int numarare(char s[], int &nr1)
{
int i;
nr1=0;
for(i=0;i<strlen(s);i++)
if(s[i]>='A' && s[i]<='Z')
nr1++;
}
main()
{
char s[41],max[41];
int n,i,p,m,j,l;
f=fopen("D:\siruri.txt","r");
fscanf(f,"%d\n",&n);
p=0;
for(i=0;i<=n-1;i++)
{
fgets(s,40,f);
fscanf(f,"\n");
numarare(s,m);
if(p<=m)
{
l=strlen(s);
for(j=0;j<l;j++)
max[j]=s[j];
p=m;
}
}
for(j=0;j<l;j++)
cout<<max[j];
}