ciao a tutti ho una strut dati formata da char, in particolare il codice del volo è una stringa di 7 caratteri formata dalle prime 4 lettere maiuscole e le rimanenti da numeri es: ABCD123.
Adesso devo creare una funzione per calcolare l'indice di un vettore che è data dalla formula:
indice =(somma prime 4 lettere in maiuscolo)%n dove n è la dimensione del vettore.
ho provato a fare in questo modo
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define FLUSH while(getchar ()!='\0')
#define COD 8
#define STR 30
typedef struct{
char codice[COD];
char cognome[STR], nome[STR];
}tipobaseList;
void LeggiStringa(char s [], unsigned int dim){
unsigned int i=0;
for(i=0; ((s[i]=getchar())!='\n') && i<dim-1; i++)
s[i]='\0';
if(i==dim-1) while(getchar()!='\0');
}
void LeggiCodice(tipobaseList *x){
printf("\nInserisci codice volo: ");
LeggiStringa(x->codice, COD);
}
int Indice(tipobaseList x, int n){
int i=0, k=0, somma=0;
for(i=0; x[i]; i++)
x[i]=toupper(x[i]);
printf("%s",x);
for(k=0; x[k]<4; k++)
somma=(somma+x[k])%n;
return(somma);
}
int main(){
tipobaseList codice_volo;
int n,i ;
printf("\nInserisci lunghezza vettore" );
scanf("%d", &n);
FLUSH;
LeggiCodice(&codice_volo);
i=Indice(codice_volo, n);
printf("l'indice e' %d", i);
system("PAUSE");
return 0;
}
mi da errore:
In function `int Indice(tipobaseList, int)':
no match for 'operator[]' in 'x[i]'