Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Dividir una cadena

Estas en el tema de Dividir una cadena en el foro de C/C++ en Foros del Web. Hola tengo la siguiente duda tengo que cortar la siguiente cadena char str = "a20;e30;i40;o20;u10;"; de manera de poder dejarla en diferentes variables. Ej: float ...
  #1 (permalink)  
Antiguo 14/06/2008, 09:34
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 4 meses
Puntos: 0
Dividir una cadena

Hola tengo la siguiente duda tengo que cortar la siguiente cadena
char str = "a20;e30;i40;o20;u10;";
de manera de poder dejarla en diferentes variables.
Ej:
float a=20
float e=30

Para tomar desde la a en adelante utilizo la función strstr pero nose delimitarlo hasta la coma.

Código:
#include <string.h>
#include <stdio.h>

int main()
{
	char *str="a20;e40;i10";
	char * p;

        p = strstr(str, "a");
	printf("%s\n",p+1);


	return 0;	
}
O sea tengo que tomar el valor después de la vocal y hasta el punto y coma pero no me sale, se agradece ayuda.
  #2 (permalink)  
Antiguo 14/06/2008, 09:58
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Dividir una cadena

Creo que lo mejor es con sscanf:

Código:
char *str="a20;e40;i10";
float a;
float e;
sscanf( str, "a%f;e%f;", &a, &e );
O si las variables van a ser siempre enteras:

Código:
char *str="a20;e40;i10";
int a;
int e;
sscanf( str, "a%d;e%d;", &a, &e );
__________________
Pop & Rock Bands
Pop Music Stars
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:45.