Salve a tutti
Stavo studiando la funzione
strtok e stavo provando a creare un piccolo programma il cui scopo è il seguente: digitare un numero di telefono e suddividere il numero in due parti, cioè il prefisso e il resto del numero e vederle visualizzate queste due parti in due output distaccati.
Questa divisione l'ho voluta fare tramite la funzione strtok ma ho un problema, ovvero il resto del numero non è completo, o meglio mancano le ultime due cifre.
Ecco il codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>//libreria per la formattazione delle stringhe
int main()
{
char telefono[30]; //vettore di caratteri per il numero di telefono
char *numPtr;
char *tokenPtr; //Puntatore per i token
int prefisso=0;
long restonumero=0;
printf("Digitare numero telefonico [ es.342/9559643 ]: \n");
fgets(telefono,10,stdin); //input del numero telefonico
tokenPtr = strtok(telefono,"/"); //suddivisione del prefisso
prefisso = atoi(tokenPtr); //conversione del prefisso in un numero intero
numPtr = strtok(NULL,"\0");
restonumero = atol(numPtr);
printf("Prefisso: %d \n",prefisso); //stampa del prefisso
printf("Resto del numero: %ld \n",restonumero);
return 0;
}//end main
Inoltre una volta separate le due parti trasformo la stringa in
int e
long.
Grazie