|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
[C] Riconoscere se un input è una striga o un intero
premetto il mio programma deve avere un input così:
e piastra e codifica l'azione di eliminazione e piastra può essere il nome di una piastra da cancellare oppure un numero,un altezza,ovvero: con e gamma elimino la piastra gamma con e 2 elimino tutte le piastre con altezza due la e la prendo da input con un getchar() mentre per le stringhe utilizzo questa funzione: Codice:
char *leggi_stringa(void)
{
char c;
char *word = calloc(30, sizeof(char)); /* alloca memoria per una stringa di 30 */
/* caratteri */
int i = 0;
while(isspace(c = getchar()));
do
{
if (i >= 30){
word = realloc(word, (i+1)*sizeof(char));
} /*realloca se lo spazio non basta*/
word[i++] = c;
} while (!(isspace(c = getchar())));
word[i] = '\0'; /* chiude la stringa letta */
return word;
}
P.s: non posso fare una cosa così: e 2 d gamma,ovvero per codificare l'azione di elimina devo sempre usare la e
__________________
Khelidan |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
non ho capito un cavolo
![]() sembra un post scritto estraendo a caso parole e spezzoni di frasi ![]() cosa sarebbe "e piastra", "e gamma", "e 2", "elimina di qua", "elimina di là"... ? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
quello è soltanto un esempio di cosa devo avere in input,cmq le piastre sono dei rettangoli su un piano cartesiano,e hanno un altezza definita da quanti altri rettangoli vanno a coprire,a sovrapporsi,sono delle struct mantenute tramite un albero rb,ma il problema è molto prima,fai conto che al mio prompt inserisco 'e nome' oppure 'e 1'
la prima 'e' in input la prendo con un getchar dopo chiamo leggi_stringa che mi ritorna una stringa,mi chiedevo se c'è un modo di capire se quella stringa è in realtà un intero,un numero
__________________
Khelidan Ultima modifica di khelidan1980 : 13-07-2008 alle 17:03. |
|
|
|
|
|
#4 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
PS: ma ora, scusa, perché un rettangolo su un piano cartesiano si deve chiamare "piastra", asd? ![]() "rettangolo" non va più bene? come "handicappato" e "negro", che al giorno d'oggi sono stati sostituiti rispettivamente da "differentemente abile" e "di colore"? |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
P.s:cmq grazie alla a quel metodo con la scanf non avevo pensato!
__________________
Khelidan |
|
|
|
|
|
|
#6 | |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
Nel mio sito puoi scaricare un esempio: http://www.guidealgoritmi.it/ShowArticle.aspx?ID=6 Nell'articolo l'automa riconosce anche i numeri in virgola mobile. Per assicurarti che la stringa contenga un intero, devi verificare che lo stato ritornato dall'automa sia uguale a S2. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:31.






















