| V I S U A L I Z Z A D I S C U S S I O N E |
| ohtar |
Inserito il - 05/07/2004 : 13:34:27 Come faccio ad assegnare ad un campo di tipo char di una struct, la stringa presa in input?
esempio: struct table{ char nominativo[30]; }tabella;
char nome[30]; printf("Inserisci un nome\n"); scanf("s",&nome); tabella.nominativo=nome; printf("Il nome inserito e': %s",tabella.nominativo);
Qualcuno sa dirmi come posso fare e se questo procedimento è sbagliato? Ci sono errori di assegnazione per caso?
Grazie.
|
| 9 U L T I M E R I S P O S T E (in alto le più recenti) |
| ohtar |
Inserito il - 05/07/2004 : 16:18:56 Grazie badpenguin adesso è tutto ok e finalmente la gestione del libretto universitario è conclusa. |
| novantuno |
Inserito il - 05/07/2004 : 16:10:59 Secondo me potresti benissimo fare a meno della stringa nome ed immettere il tutto nel campo nominativo del record !
Tutto il resto scritto da badpenguin è perfetto !
Un ultima cosa : la stringa inserita deve avere lo spazio necessario a contenere anche il carattere di terminazione della stringa '\0' ! |
| badpenguin |
Inserito il - 05/07/2004 : 15:46:52 Il problema è dovuto come dice il tuo compilatore, ad un assegnazione errata Nella fattispecie stai cercando di assegnare un indirizzo di memoria e non il valore in se.
Per copiare le stringhe puoi usare le funzioni di librerie standard del C per la gestione delle stringhe, in questo caso la strcpy, o strncpy ritenuta piu sicura.
Dovresti fare qualcosa del genere:
struct table{ char nominativo[30]; }tabella;
char nome[30]; printf("Inserisci un nome\n"); scanf("%s",nome); strcpy(tabella.nominativo,nome); // oppure strncpy(tabella.nominativo,nome,30) printf("Il nome inserito e': %s",tabella.nominativo);
Ricordati di inserire anche #include<string.h> all'inizio del sorgente.
Ciao |
| Chilavert |
Inserito il - 05/07/2004 : 15:45:22 prova printf("Il nome inserito e': %s",&tabella.nominativo);
|
| ohtar |
Inserito il - 05/07/2004 : 15:43:18 Mi da sempre lo stesso errore anche con gets.Non so come fare. Riesco a visualizzare tutti i campi interi ma non quelli contenenti stringhe. |
| Chilavert |
Inserito il - 05/07/2004 : 15:12:29 anzichè scanf usa gets... |
| ohtar |
Inserito il - 05/07/2004 : 14:58:48 A me da il seguente errore a questa riga: tabella.nominativo=nome; Errore: incompatible types in assignment Qualcuno sa come posso risolvere questo errore? |
| ohtar |
Inserito il - 05/07/2004 : 14:04:15 no quello è stato un mio errore di scrittura.ma nn è quello il problema purtroppo. |
| genius |
Inserito il - 05/07/2004 : 14:02:16 Citazione: Messaggio inserito da ohtar
Come faccio ad assegnare ad un campo di tipo char di una struct, la stringa presa in input?
esempio: struct table{ char nominativo[30]; }tabella;
1. char nome[30]; 2. printf("Inserisci un nome\n"); 3. scanf("s",&nome); 4. tabella.nominativo=nome; 5. printf("Il nome inserito e': %s",tabella.nominativo);
Qualcuno sa dirmi come posso fare e se questo procedimento è sbagliato? Ci sono errori di assegnazione per caso?
Grazie.
i miei ricordi vaghi di c mi dicono ke alla riga 3 va scritto...
"%s" e nn "s"... |