Salve a tutti, volevo chiedervi un aiuto sul capire meglio il concetto di "creazione di nuovo array", mi spiego meglio. Spesso negli esami del mio prof c'è una parte in cui ti chiede di verificare che degli elementi di un array soddisfino certe condizioni e di spostarli in un nuovo array. Ora la verifica delle condizioni mi viene piuttosto facile dato che si tratta quasi sempre di usare "strcmp, la parte complicata sta nello spostare in nuovo array. Ora, ho "capito" che per spostare da un array ad un altro posso utilizzare il comando "strcpy", ma ho problemi con la dimensione del secondo array.
Mentre il primo ha una dimensione prestabilita, il secondo dovrebbe avere una dimensione crescente che non gli riesco mai a dare. Qualcuno di voi può aiutarmi postando qualche algoritmo simile? io ad esempio ho provato in questo modo ma il compilatore crasha
MAIN FILE
#include <cstdlib>
#include "aereo.h"
#include <iostream>
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
int n,k1,k2,j,r;
aereo a[100];
aereo b[100];
aereo c[100];
cout<<"inserisci numero prenotazioni: ";
cin>>n;
leggi(a,n);
cout<<"inserisci numero codice massimo: ";
cin>>k1;
cout<<"inserisci numero codice minimo: ";
cin>>k2;
controlla(a,n,k1,k2,j,r);
inserisci(a,b,c,k1,k2,j,r,n);
stampa (b,j);
stampa(c,r);
return 0;
}
HEADER FILE
#ifndef AEREO_H
#define AEREO_H
struct aereo{
char volo[30];
char nome[30];
char cognome[30];
int cod;
};
void leggi(aereo a[], int n);
void controlla(aereo a[], int n, int k1, int k2, int j, int r);
void inserisci(aereo b[], aereo c[], aereo a[], int n, int k1, int k2, int j, int r);
void stampa(aereo a[], int n);
#endif /* AEREO_H */
FUNZIONI FILE
#include <cstdlib>
#include <iostream>
#include "aereo.h"
using namespace std;
/*
*
*/
void leggi(aereo a[], int n){
for(int i=0;i<n;i++){
cout<<"inserisci volo:";
cin>> a.volo;
cout<<"inserisci nome: ";
cin>> a.nome;
cout<<"inserisci cognome:";
cin>> a.cognome;
cout<<"inserisci codice: ";
cin>> a.cod;
}
}
void controlla(aereo a[], int n, int k1, int k2, int j, int r){
for(int i=0;i<n;i++){
if(a.cod<k1){
j++;
}
if(a.cod>k2){
r++;
}
}
}
void inserisci(aereo b[], aereo c[], aereo a[], int n, int k1, int k2, int j, int r){
for(int i=0;i<n;i++){
for(int s=0;s<j;s++){
if(a.cod<k1){
b[s]=a;
}
for(int l=0;l<r;l++){
if(a.cod>k2){
c[l]=a;
}
}
}
}
}
void stampa(aereo a[], int n){
for(int i=0;i<n;i++){
cout<<a[i].volo;}
for(int i=0;i<n;i++){
cout<<a[i].cognome;}
for(int i=0;i<n;i++){
cout<<a[i].cod;
}
}
Grazie ancora per il vostro aiuto