/* File: strnums.c */
/* Time-stamp: "2002-05-07 13:23:05 calvanes" */
/* Scopo: utilizzo di strtod per conversioni ripetute */

#include <stdio.h>
#include <stdlib.h>

#define LUNG 80
#define NMAX 3

int main (void)
{
  char stringa[LUNG];      /* vettore in cui memorizzare la stringa di input */
  double vett[NMAX];       /* vettore in cui memorizzare i numeri convertiti */
  char *inizio = stringa, *resto = stringa;
  int lung = -1, n = -1, i;

  printf("Immetti una sequenza di numeri separati da spazio:\n");

  /* Lettura della sequenza di caratteri. */
  do {
    lung++;
    stringa[lung] = getchar();
  } while (stringa[lung] != '\n' && lung < LUNG-1);
  stringa[lung] = '\0';

  printf("La stringa immessa e`:\n\"%s\"\n", stringa);

  /* Conversione della sequenza di caratteri in un vettore di double. */
  do {
    n++;
    inizio = resto;
    vett[n] = strtod(inizio, &resto);
  } while (inizio != resto && n < NMAX-1);
  /* N.B. l'ultimo numero significativo e` quello di indice n-1 */

  /* Stampa del vettore di double. */
  printf("I numeri nella stringa sono:\n");
  for (i = 0; i <= n; i++)
    printf("%lg\n", vett[i]);

  return 0;
}