Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Linguaggi di programmazione
 Aiuto linguaggio C
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

ohtar
Utente medio



Inserito il - 05/07/2004 : 13:34:27  Mostra Profilo  Visita l'Homepage di ohtar  Clicca per vedere l'indirizzo MSN di ohtar Invia a ohtar un Messaggio Privato  Rispondi Quotando
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.


www.giovinazzo.it , per sapere tutto ciò che accade a Giovinazzo.

genius
dott. ing. cav. ...FN

Genio


Regione: Puglia
Prov.: Bari
Città: Molfetta - Caput Mundi


Inserito il - 05/07/2004 : 14:02:16  Mostra Profilo  Visita l'Homepage di genius  Clicca per vedere l'indirizzo MSN di genius  Invia a genius un messaggio Yahoo! Invia a genius un Messaggio Privato  Rispondi Quotando
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"...

"...e se non hai morale
e se non hai passione
se nessun dubbio ti assale
perché la sola ragione che ti interessa avere
è una ragione sociale
soprattutto se hai qualche dannata guerra da fare
non farla nel mio nome
non farla nel mio nome
che non hai mai domandato la mia autorizzazione
se ti difenderai non farlo nel mio nome
che non hai mai domandato la mia opinione..."

Un blog farlocco
Torna all'inizio della Pagina

ohtar
Utente medio



Inserito il - 05/07/2004 : 14:04:15  Mostra Profilo  Visita l'Homepage di ohtar  Clicca per vedere l'indirizzo MSN di ohtar Invia a ohtar un Messaggio Privato  Rispondi Quotando
no quello è stato un mio errore di scrittura.ma nn è quello il problema purtroppo.

www.giovinazzo.it , per sapere tutto ciò che accade a Giovinazzo.
Torna all'inizio della Pagina

ohtar
Utente medio



Inserito il - 05/07/2004 : 14:58:48  Mostra Profilo  Visita l'Homepage di ohtar  Clicca per vedere l'indirizzo MSN di ohtar Invia a ohtar un Messaggio Privato  Rispondi Quotando
A me da il seguente errore a questa riga: tabella.nominativo=nome;
Errore: incompatible types in assignment
Qualcuno sa come posso risolvere questo errore?

www.giovinazzo.it , per sapere tutto ciò che accade a Giovinazzo.
Torna all'inizio della Pagina

Chilavert
admin

vacca


Regione: Puglia
Prov.: BA
Città: Bari


Inserito il - 05/07/2004 : 15:12:29  Mostra Profilo  Visita l'Homepage di Chilavert Invia a Chilavert un Messaggio Privato  Rispondi Quotando
anzichè scanf usa gets...

E' un bene per il Prof. Xxxxxxx che sappia con chi ha a che fare.
Pensa a studiare e non agli esempi, o ad altre strade per così dire,
che questa volta mi sa che non attacca. [cit.]

Tutti professori dall'esterno, e poi parlano persone che per prendere un voto decente
ripetono l'esame 30 volte e poi fanno i sapientoni con chi segue la prima volta vedi chilavert [cit.]
Torna all'inizio della Pagina

ohtar
Utente medio



Inserito il - 05/07/2004 : 15:43:18  Mostra Profilo  Visita l'Homepage di ohtar  Clicca per vedere l'indirizzo MSN di ohtar Invia a ohtar un Messaggio Privato  Rispondi Quotando
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.

www.giovinazzo.it , per sapere tutto ciò che accade a Giovinazzo.
Torna all'inizio della Pagina

Chilavert
admin

vacca


Regione: Puglia
Prov.: BA
Città: Bari


Inserito il - 05/07/2004 : 15:45:22  Mostra Profilo  Visita l'Homepage di Chilavert Invia a Chilavert un Messaggio Privato  Rispondi Quotando
prova
printf("Il nome inserito e': %s",&tabella.nominativo);

E' un bene per il Prof. Xxxxxxx che sappia con chi ha a che fare.
Pensa a studiare e non agli esempi, o ad altre strade per così dire,
che questa volta mi sa che non attacca. [cit.]

Tutti professori dall'esterno, e poi parlano persone che per prendere un voto decente
ripetono l'esame 30 volte e poi fanno i sapientoni con chi segue la prima volta vedi chilavert [cit.]
Torna all'inizio della Pagina

badpenguin
Nuovo Utente



Regione: Puglia
Prov.: Bari


Inserito il - 05/07/2004 : 15:46:52  Mostra Profilo  Visita l'Homepage di badpenguin Invia a badpenguin un Messaggio Privato  Rispondi Quotando
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

Software is like sex: it's better when it's free. (Linus Torvalds)
Torna all'inizio della Pagina

novantuno
Ero-sannin

Jiraya


Regione: Puglia
Prov.: Bari
Città: Modugno


Inserito il - 05/07/2004 : 16:10:59  Mostra Profilo  Visita l'Homepage di novantuno  Invia a novantuno un messaggio ICQ  Clicca per vedere l'indirizzo MSN di novantuno Invia a novantuno un Messaggio Privato  Rispondi Quotando
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' !
Torna all'inizio della Pagina

ohtar
Utente medio



Inserito il - 05/07/2004 : 16:18:56  Mostra Profilo  Visita l'Homepage di ohtar  Clicca per vedere l'indirizzo MSN di ohtar Invia a ohtar un Messaggio Privato  Rispondi Quotando
Grazie badpenguin adesso è tutto ok e finalmente la gestione del libretto universitario è conclusa.

www.giovinazzo.it , per sapere tutto ciò che accade a Giovinazzo.
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,27 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000