Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2012, 17:55
Amphoth3ra
 
Fecha de Ingreso: mayo-2011
Mensajes: 26
Antigüedad: 13 años, 10 meses
Puntos: 1
[C] Pasar un string dividido con strtok a int

Explico el contexto: Tengo un RUT que se compone en su conjunto de un número de 8 carácteres, un guión, y un dígito verificador. Ej: 15554302-6.

Lo que yo estoy buscando es poder convertir el número de 8 carácteres a entero, lo cual me va a poder servir luego para hacer comparaciones. Para ello estuve googleando y lo que pensaba era poder usar la función strtok, para poder obtener esa división del string y convertirla a int usando la función atoi.

El código de lo que intento hacer, a continuación:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main ()
  6. {
  7.   char str[] ="15554302-6";
  8.   char * pch;
  9.   int number;
  10.   printf ("Quiero dividir \"%s\" ese rut en partes:\n",str);
  11.   pch = strtok (str," ,.-");
  12.   number = (atoi)pch;
  13.   while (pch != NULL)
  14.   {
  15.     printf ("%s\n",pch);
  16.     pch = strtok (NULL, " ,.-");
  17.   }
  18.   prinnf("El número es %d", number);
  19.   return 0;
  20. }

Sin embargo, al compilarla con gcc me sale un warning y un error.

Código C:
Ver original
  1. h724@ubuntu:~$ gcc -o example1 example1.c
  2. example1.c: In function ‘main’:
  3. example1.c:12: warning: assignment makes integer from pointer without a cast
  4. example1.c:12: error: expected ‘;’ before ‘pch’
  5. h724@ubuntu:~$

No śe que és lo que está mal, por eso lo vengo a preguntar.

Saludos.