khelidan1980
13-07-2008, 16:35
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:
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;
}
ora qualcuno sa dirmi una volta che leggi_stringa mi ha ritornato un array di char come faccio per distinguere se quella stringa è effettivamente una stringa oppure e un numero da considerarsi un int?
P.s: non posso fare una cosa così: e 2 d gamma,ovvero per codificare l'azione di elimina devo sempre usare la e
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:
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;
}
ora qualcuno sa dirmi una volta che leggi_stringa mi ha ritornato un array di char come faccio per distinguere se quella stringa è effettivamente una stringa oppure e un numero da considerarsi un int?
P.s: non posso fare una cosa così: e 2 d gamma,ovvero per codificare l'azione di elimina devo sempre usare la e