Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: C struct e stringhe

  1. #1

    C struct e stringhe

    Prendiamo in esame questo banale programma:

    codice:
    #include <stdlib.h> 
    #include <stdio.h>
    struct cliente
       { char nome[20]; 
         int numero; 
       };
    main()
      { struct cliente nuovo;    
    
      /* ??? Acquisizione del nome da programma*/ 
    
      nuovo.numero=123456;    //ho acquisito il numero da programma
    
      printf("%s",nuovo.nome); 
      printf("%d",nuovo.numero);
      system("PAUSE");
      return 0;
      }
    Ora dove c'è il commento vorrei acquisire il nome da programmna nello stesso modo in cui ho acquisito il numero. Purtroppo però "nuovo.nome" è un indirizzo e non posso fare una semplice assegnazione del tipo: nuovo.nome="pippo";
    Sarei grato se qualcuno mi risolvesse il problema. Grazie.
    Maurizio

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    non basta fare una gets(nuovo.nome)? o forse nn ho ben capito cosa intendi...

  3. #3
    Potresti fare cosi':
    codice:
    scanf("%s",nuovo.nome);
    o anche con gest/fgest in modo analogo.


    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  4. #4
    Scusa il numero l'avrai acquisito con una cosa del tipo
    codice:
     scanf("%d",&nuovo.numero);
    giusto?Beh l'acquisizione del nome la fai in maniera simile ma evitando di mettere la '&' (perchè il nome di una variabile array è già un indirizzo) e mettendo un %s invece di un %d
    codice:
     scanf("%s",nuovo.nome);
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Ooops..post simultaneo
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Originariamente inviato da unomichisiada
    Ooops..post simultaneo
    eheh stesso minuto e....stessa risposta


    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    suggerisco tuttavia una gets(nuovo.nome) perchè così accetta anche eventuali spazi del nome (o cognome) Ad es.: Di Matteo

  8. #8
    Originariamente inviato da Ponza
    suggerisco tuttavia una gets(nuovo.nome) perchè così accetta anche eventuali spazi del nome (o cognome) Ad es.: Di Matteo
    Si è un'alternativa anche quella,dipende dalla sua esigenza o meno di prevedere anche spazi nella stringa
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  9. #9
    Vedo che nessuno ha capito cosa devo fare...
    nuovo.nome non deve essere acquisito da tastiera.
    devo semplicemente ASSEGNARE a nuovo.nome una stringa proprio come assegnerei un valore ad una semplice variabile.
    es.
    codice:
     int i;
     i=0;    // ho fatto una semplice assegnazione
    ora ho:
    codice:
     nuovo.nome        // è un indirizzo!
    e vorrei fare una cosa di questo tipo:
    codice:
     nuovo.nome="PIPPO";  :confused:
    ma è ERRATO. come faccio?
    Maurizio

  10. #10
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    forse con strcpy

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.