Ver Mensaje Individual
  #17 (permalink)  
Antiguo 11/05/2013, 15:41
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Pasar de cadena de caracteres a INT

Como? No hombre no, que es muy facil. Si quires convertir un caracter numerico a su entero solo tienes que aplicar lo de los ascii:

Código:
char caracteres[] = "1234567890";
int q, entero;

for(q = 0; q < strlen(caracteres); q++) {
	entero = caracteres[q] - '0';
}
Y si quires convertir todo el numero de una cadena de caraceres numericos solo tienes que aplicar alguna funcion de conversion, yo me decanto por strtol:

Código:
char caracteres[] = "2013";
long int entero;
	
entero = strtol(caracteres, 0, 10);
Los argumentos de strtol puedes encontrarlos en cualquier manual de c, basicamente son la cadena de texto donde buscar enteros, un puntero donde se guarda el siguiente texto al numerico encontrado (en caso que haya alguno), y la base numerica. Pongo otro ejemplo de strtol y su magia:

Código:
char *pch, caracteres[] = "2013 05 11";
long int entero;

pch = NULL;
while(1) {
	if((entero = strtol((pch)?pch:caracteres, &pch, 10)) == 0L) {
		break;
	}
	printf("%d\n", entero);
}
Saludos
vosk