Convertire caratteri stringa in valori interi

di Anonimizzato21540 il
5 risposte
Salve, ho un problema nel realizzare questo codice:
legge la rappresentazione di 4 valori come stringa di 4 estremi interi (es. "0 0 3 4" ) e scriverli nella seguente struttura
(typedef struct {
unsigned s_i, s_j;
unsigned d_i, d_j;
} obstacle_t;
la funzione è la seguente
obstacle_t * string_to_obstacle (char * s);
dove *s è il puntatore alla lista
retval p il puntatore alla nuova struttura obstacle_t creata (se la conversione ha avuto successo)
retval NULL altrimenti

5 Risposte

  • Formatta il codice utilizzando i tag appositi...
  • In ogni caso il modo più semplice per convertire un carattere ASCII in un numero intero è sottrarre al carattere ASCII il valore del cararttere 0.
    
    char string = '2';
    int dummy = string - '0';
    
  • Io avevo in mente di separare la stringa in 4 stringhe una per ogni valore e dopo usare su di esse ila funzione atoi
  • Questi valori saranno sempre di una cifra ?
  • Piuttosto di usare atoi utilizza strtol.

    In ogni caso se i numeri sono sempre nelle stesse posizioni puoi limitarti a quello che ti ho scritto sopra, tenendo conto, nel caso di numeri con più di una cirfa, le potenze.

    Resta il fatto che anche il tuo approccio, di dividere la stringa in sottostringhe, è valido.
Devi accedere o registrarti per scrivere nel forum
5 risposte