+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Uso di una stringa in una struct

  1. #1
    scarulli non è in linea Novello
    Post
    2

    Uso di una stringa in una struct

    Buon pomeriggio a tutti sono scarulli e sono nuovo in questo forum.
    Mi sono iscritto perchè ho notato che le discussioni che affrontate sono molto interessanti inoltre ho bisogno di un aiutino riguardante le struct in C.
    Oltre ad essere nuovo al forum sono abbastanza nuovo anche nella programmazione in C quindi mi chiedevo se potevate darmi una mano in questo mio problema.
    Ho scritto un programma di questo tipo:

    codice:
    #define DES_LEN 1000
    #define MAX_LEN 100
    typedef struct{
    char nome[MAX_LEN];
    char cognome[MAX_LEN];
    char descrizione[DES_LEN];
    }persona;
    
    //Quello che sto cercando di fare è una cosa del tipo:
    
    int main()
    {
    persona persona1;
    persona1.nome[MAX_LEN]="Maria"; 
    printf("%s",persona1.nome[MAX_LEN];
    }
    /*Ovviamente il compilatore compila ma quando faccio la printf di persona1.nome[MAX_LEN] mi stampa valori casuali.
    Potreste spiegarmi il perché e come risolvere il problema? Grazie*/
    Ultima modifica di AntonioG; 11-01-2018 14:56  Motivo: Tag CODE per il codice

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    15,731
    Blogs
    5
    Intanto ti invito a racchiudere il codice che proponi tra tag CODE (vedi regolamento) per maggiore chiarezza.

    Questa volta l'ho fatto io, controlla come.

    Per quanto riguarda il problema, ti ricordo che le stringhe in C sono vettori di char e non puoi scrivere

    codice:
    persona1.nome[MAX_LEN]="Maria";
    ma va usata una funzione apposita, come la strcpy, in questo modo

    codice:
    strcpy(persona1.nome, "Maria");
    e quindi la visualizzazione avviene con

    codice:
    printf("%s", persona1.nome);
    Puoi trovare esempi di utilizzo di queste funzioni basilari in qualsiasi libro (sicuramente in quello che starai usando per imparare).
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    scarulli non è in linea Novello
    Post
    2
    Grazie mille per la sua cortesia, mi dispiace se non ho rispettato il regolamento.
    La prossima volta sarò più attento!
    Buona giornata!

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi