Pages (25): « First ... « 5 6 7 8 [9] 10 11 12 13 » ... Last » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Algoritmi e strutture dati (http://www.dsy.it/forum/forumdisplay.php?forumid=207)
-- [Algoritmi] Progetto "CONTROLLO REMOTO" (http://www.dsy.it/forum/showthread.php?threadid=16306)
Originally posted by andrea
Credo proprio che le stringhe vadano gestite con la getchar.
__________________
Teju.it - Una vita da raccontare
Sì, credo proprio che l'unica strada sia questa. Anche se diventa veramente tutto molto macchinoso.
Originally posted by Tejuscsate se mi ripeto, ma sopra avevo detto che lo stesso Fiorentini mi ha detto di leggere carattere per carattere e che una volta finito sappiamo la dimensione per memorizzare il nome....
Ok, lì ci siamo: dunque van salvate in una lista di char i vari caratteri del nome... oppure no?
io provo così: leggo l'input e il nome dell'automa lo metto in un array tipo:
char nome[N]; con N che indica la massima lunghezza che può avere il nome; lo so che non è definita però è finita quindi N lo si può porre anche molto grande.
poi uso strlen e strcpy per sapere la lunghezza del nome e allocare quindi lo spaxio necessario ad un array di char che contiene il nome dell'automa.
Originally posted by p2p
realloc()
__________________
Teju.it - Una vita da raccontare
mitnik, credo che non possa fare come tu dici, perchè N può essere grande finchè vuoi, ma è pur sempre limitato
Originally posted by p2p
leggi la lezione 9 di Aguzzoli le ultime pagine, cè un programma di esempio che parte pa pag.26 dove "L’elenco delle parole viene memorizzato in un array di stringhe
allocato dinamicamente."
potrebbe andare no?
ma scusa il testo dice: ogni automa è identificato da un nome che è una stringa finita sull'alfabeto (0,1)....
...La sorgente remota può emettere segnali rappresentati da stringhe finite del tio a,B..
allora pongo per esempio N=65536; tale valore dovrebbe essere abbastanza grande. Certo la stringa potra essere più lunga ma non infinitamente lunga. che dici?
Anche io avevo interpretato così, ho chiesto a fiorentini che mi ha risposto che non va bene. La stringa è finita, ma non c'è limite superiore. Leggi la sua mail di risposta che ho postato qualche messaggio fa.
ideina :
se facciamo leggere la stringa e la memorizziamo in un puntatore a char (come diceva dante) e poi dichiariamo un array di dimensione di quello che è puntato da questo puntatore e ce lo copiamo dentro?
potrebbe funzionare!!!
Non credo, perchè con un puntatore a char puoi leggere solo un char. Come fai a capire dove finisce la stringa che hai letto?
sia utilizzando i puntatori a char sia utilizzando altri metodi come per esempio la lettura con getchar è necessario allocare dello spazio in memoria per contenere il tutto. Per fare cio è necessario dare una dimensione finita (considerato anche che la memoria lo è). Quindi io penso di proseguire con la mia idea di allocare uno spazio in memoria di supporto per contenere la stringa; poi in base alle dimensioni di questa alloco spazio definitivo per contenere il bone dell'automa, liberando quello utilizzato come supporto. Non sarà sicuramente il metoso più corretto ma sinceramente non trovo altre soluzioni per poter esaminare una stringa di lunghezza arbitraria. Se continup a sbattere la testa su questo problema il 30 gennaio sarò qui ancora a pensare a come e dove memorizzare una cazzo di stringa.
ciao a tutti provate a consultare questo esempio utilizza realloc()
http://programmazione.html.it/c/c_32.htm
Scusa, mitnik, ma non è più semplice se allochi lo spazio in memoria elemento per elemento della lista invece che allocare all'inizio lo spazio di una lista intera? Mi spiego: se fai un ciclo sulla getchar, ti arriva il carattere, a questo punto allochi il nodo e lo inserisci nella lista. Poi vai a leggere il carattere successivo, allochi il nodo e lo inserisci. Continui così fino a quando il carattere non è un new line.
Originally posted by andrea
Scusa, mitnik, ma non è più semplice se allochi lo spazio in memoria elemento per elemento della lista invece che allocare all'inizio lo spazio di una lista intera? Mi spiego: se fai un ciclo sulla getchar, ti arriva il carattere, a questo punto allochi il nodo e lo inserisci nella lista. Poi vai a leggere il carattere successivo, allochi il nodo e lo inserisci. Continui così fino a quando il carattere non è un new line.
__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)
MSN andrea.poretti(at)hotmail.it
All times are GMT. The time now is 11:01. | Pages (25): « First ... « 5 6 7 8 [9] 10 11 12 13 » ... Last » Show all 366 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.