|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2000
Città: Milano
Messaggi: 210
|
[C] CONVERTIRE STRINGA
Salve a tutti!
Ho la seguente struttura: Codice:
typedef struct { char nome[LNOME+1]; char cognome[LCOGN+1]; char citta[LCITT+1]; char telefono[LTELE+1]; char commento[LCOMM+1]; } voce; COGNOME NOME CITTA' TELEFONO COMMENTO In cui tutte le righe hanno lunghezza fissa a 140 caratteri. Mi si chiede anche che la funzione allochi la struttura e ritorni il puntatore alla struttura allocata se tutto e' andato bene e NULL altrimenti. In poche parole non saprei fare niente, sono onesto. Come faccio a prendere i vari campi e memorizzarli nei corrispettivi campi della struttura??? VI CHIEDO IL FAVORE DI AIUTARMI, GRAZIE!!! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Riservati la memoria con:
Codice:
nuovavoce = (voce *) malloc(memoriachetiserve); Per le altre, basterà fare: Codice:
strncpy(nuovavoce->nome, stringadacuicopiare, 140); strncpy(nuovavoce->cognome, (stringadacuicopiare+140), 140); strncpy(nuovavoce->citta, (stringadacuicopiare+280), 140); etc. etc. etc.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Mar 2005
Messaggi: 41
|
A cosa servono il +140 e +280?
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Servono a spostarsi all'interno della memoria puntata da "stringadacuicopiare" (che è un char *, quindi pur sempre un puntatore) e quindi a saltare le stringhe già lette (che da quanto detto sono grandi 140 byte).
A proposito, trunks81: nella dichiarazione di "prova" ci va "char *" e non "char []", altrimenti il compilatore potrebbe darti rogne.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:03.