#include <stdlib.h> long atol(const char *ristra);
Convierte una ristra en un entero largo.
Devuelve un entero largo con el valor numérico de la ristra pasada, o cero si la ristra no representa un número.
ANSI, POSIX
La función subRistraAEnteroLargo obtiene, si existe, la primera subristra de caracteres numéricos de la ristra pasada por parámetro y la convierte en un número entero largo, en caso de que no exista devuelve el valor mínimo de un entero largo.
#include <stdlib.h>
#include <limits.h>
long SubRistraAEnteroLargo(const char *ristra, int n){
char subristra[n];
/* LONG_MIN es una macro definida en limits.h con el valor mínimo de un entero largo */
long largo=LONG_MIN;
int i, k=0;
for(i=0;i<n;i++)
if(subristra[i]>='0' && subristra[i]<='9')
subristra[k++]=ristra[i];
else
if(k>0) {
subristra[k]='\0';
break;
}
if(k>0)
largo=atol(subristra);
return largo;
}