Non so se ho capito bene o no, cmq ho fatto in questo modo ...
#include<iostream>
#include<cstdlib>
#include<string.h>
#include<fstream>
#define N 100
typedef char stringa[N];
typedef stringa vettore[N];
using namespace std;
void input(int&n, vettore v);
void stampa(int n, vettore v);
void massimo(int n, vettore v, int&max, int&imax);
void sostituzione(int n, vettore v, int max, int imax);
void input(int&n, vettore v){
int i=0;
fstream f;
f.open("Lista Pazienti.txt",ios::in);
while(!f.eof()){
f>>v[i];
i++;
n=i;
}
}
void stampa(int n, vettore v){
int i;
cout<<"La lista dei pazienti e':"<<endl;
for(i=0;i<n;i++){
cout<<v[i]<<endl;
}
}
void ripetizione(int n, vettore v, int&cont, stringa s){
int i;
cont=0;
cout<<"Inserisci il cognome che vuoi cercare:"<<endl;
cin>>s;
for(i=0;i<n;i++){
int esito=strcmp(v[i],s);
if(esito==0){
cont++;
}
}}
void massimo(int n, vettore v, int&max, int&imax){
int i;
max=strlen(v[0]);
imax=0;
for(i=0;i<n;i++){
if(strlen(v[i])>max){
max=strlen(v[i]);
imax=i;
}
}}
void sostituzione(int n, vettore v, int max, int imax){
fstream f;
int i;
for(i=0;i<n;i++){
if(strlen(v[i])<=5){
strcpy(v[i],v[imax]);
}
f<<v[i]<<endl;
}
f.close();
}
int main(){
int i,n;
vettore v;
stringa s;
fstream f;
int cont=0;
int max,imax;
input(n,v);
stampa(n,v);
ripetizione(n,v,cont,s);
cout<<"Il cognome"<<" "<<s<<" "<<"e' presente"<<" "<<cont<<" "<<"volte nella lista dei pazienti!"<<endl;
massimo(n,v,max,imax);
cout<<endl<<"Il cognome piu' lungo e':"<<endl<<v[imax]<<endl;
sostituzione(n,v,max,imax);
cout<<"La lista in seguito alle ultime modifiche e':"<<endl;
for(i=0;i<n;i++){
cout<<v[i]<<endl;
}
system("PAUSE");
return 0;
}
..ma mi dà sempre lo stesso problema