Array di stringhe

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Array di stringhe

    Sì, infatti ti ho detti "a parte l'allineamento" ... ad esempio, se hai due strutture del tipo
    
    struct s1
    {
    	char c;
    	int i;
    };
    
    struct s2
    {
    	int i1;
    	int i2;
    };
    
    e l'allineamento è a 4 byte (32 bit), allora tutte e due le strutture avranno sizeof = 8, ovvero nella prima ci sarà il primo carattere utilizzato, tre caratteri non utilizzati e poi l'intero a 4 byte.

    Puoi cambiare l'allineamento fino ad utilizzare tutti i byte (ma facendo fare più lavoro alla CPU), con una iniziale
    
    #pragma pack(1)
    
    e in questo caso la prima sizeof sarà uguale a 5 e la seconda a 8
  • Re: Array di stringhe

    Main(void)95 ha scritto:


    Ho modificato la struct in:
    
    struct string
    {
         char nome[11];
    } persona[6];
    
    Non l'avevi detto, ma non te lo consiglio perché "string" è un termine che ti potrebbe servire in C++.

    In ogni caso, non capisco perché non utilizzi un array come

    char nomepersona[6][11];
  • Re: Array di stringhe

    Ah ok scusa se non l'avevo detto..
    Non uso la forma matriciale perché ci sono rimasto in mezzo.. Credevo che questa fosse più semplice della matrice, ma mi sa che mi sbaglio..
  • Re: Array di stringhe

    Gli avevo consigliato io di cambiarlo perchè indicava l'etichetta della struct con str e un vettore con str.

    La matrice è sicuramente la migliore scelta ma aveva scritto che voleva evitarla (forse vuole esercitarsi con le struct)
  • Re: Array di stringhe

    Ho provato a farla sotto forma di Matrice..
    Ho fatto come mi avete detto:
    
    char nomepersona[6][11];
    
    Però quando prelevo i dati dal file si salvi chi può.. Errori a non finire..
    
    int i = 0;
    while (fscanf( f, "%s", nomepersona[i][6])>0)
    {
        i++;
    }
    
    Perché dice che l'argomento è un int? Mentre la %s richiede un argomento di tipo char* ?
  • Re: Array di stringhe

    Sbagli perché non hai capito come funzionano le stringhe in C e perché usi fscanf,quando fgets è la funzione da usare.
  • Re: Array di stringhe

    Va bene grazie lo stesso di tutto.
  • Re: Array di stringhe

    Nomepersona)
Devi accedere o registrarti per scrivere nel forum
22 risposte