[C con Clase] leer cifras de un String
jferia en uci.cu
jferia en uci.cu
Mar Oct 6 20:19:09 CEST 2009
Hola Abel, en C es algo complicado el trabajo con cadenas!, si la
implementación fuese en C++ todo es más sencillo, de todas en formas
en C puedes hacer algo como esto donde el resultado quedaría en la
variable value lo cual puedes ir almacenanado en un arreglo o algo así!:
//Code
#include <string.h>
#include <stdlib.h>
using namespace std;
int main() {
char str[] = "12,34,56,78,910,3,4,5,3,5,7,8,67,1,23,23,234,243,2,9";
int cant = strlen(str);
cout<<cant<<endl;
int i = 0;
char *temp = new char[10]; int tempCant = 0;
char *p = str;
for(i = 0; i <= cant; i++)
{
char c = str[i];
if(c == ',' || i == cant )
{
strncpy(temp, p, tempCant);
p = &str[i+1];
tempCant = 0;
int value = atoi(temp);
delete temp;
temp = new char[10];
}
else{
tempCant++;
}
}
return 0;
}
Saludos Jordenys.
email: jordenysp en gmail.com
Abel <aydabella en yahoo.com.ar> ha escrito:
> Hola,
> tengo el siguiente problema; resulta que en un String tengo
> almacenado lo siguiente:
>
> char str[5000]="3245,4567,8945,67345,278936,213,......,2345";
>
> lo que quiero hacer es sacar cada una de esas cifras y convertirlas
> a "int", hice lo siguiente:
>
> char *p, temp[10];
> int y[1001],i,j=0;
> for(i=0;i<=1000;i++)
> {
> p=str+n;
> while>(*(p+j)!=',')j++;
> strncpy(temp,p,j+1);
> n+=j+1;
> y[i]=atoi(temp);
> j=0;
> }
>
> mi problema conciste en que cuando "p" apunta al final del String
> (ya no encuentra mas "comas", este se desborda y la máquina se cuelga.
> Alguien tiene alguna otra idea de como podría resolver este problema?
> Gracias por toda información.
> Saludos.
> Abel
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
Más información sobre la lista de distribución Cconclase