Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/06/2015, 20:44
tabam
 
Fecha de Ingreso: octubre-2010
Ubicación: Uruguay
Mensajes: 23
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Convertir caracter a entero

Cita:
Iniciado por eferion Ver Mensaje
Si hechas un vistazo a la tabla ASCII, verás que los caraceres 0x30 a 0x39 se corresponden con dígitos numéricos.

Lo que puedes hacer es recorrer la cadena y verificar que cada carácter de la misma se encuentre dentro de ese rango. Con un for y un if lo tienes hecho. También tienes funciones para saber si un carácter es numérico o no, pero desconozco el grado de libertad que tienes para usar este tipo de funciones.

Con lo anterior ya puedes verificar que el dato introducido sea un entero. Si ahora lo quieres convertir a un número, recorres la cadena y, para cada caracter, realizas la operación 'numero = numero * 10 + (caracter - 0x30)'. Básicamente lo que estás haciendo es calcular el valor numérico que se corresponde con el carácter actual ('1' o 0x31 debería devolver 1 porque 0x31-0x30=1). Por supuesto, esto funcionará si numero es de tipo int.

Un saludo.

Hola, la verdad es que se muy poco de C, soy mas programador de PHP y lo que quiero es enviarle un numero de PHP a C por medio de esta función:

exec("archivo_C 2 ");

y que el programa en C envíe este número al puerto paralelo de la PC.

Lamentablemente no entiendo bien lo que me decís que tengo que hacer, aparte me confunde los punteros que utiliza C para obtener el parámetro que le estoy enviando desde PHP.

Si no es mucha molestia me podrías mostrar un ejemplo de cómo hacerlo, no digo que me hagas el trabajo pero precisaría un poco mas de ayuda.

Saludos!!!!!