C/Visual C - Control arrays

 
Vista:

Control arrays

Publicado por Jordi (20 intervenciones) el 06/05/2001 15:04:05
Hola de nuevo:
Tengo una función que lee las lineas de un fichero:

while ((ch = (char)getc(f)) != EOF)
{
numchar = 0;
while (ch != CR && ch != EOF)
{
polinomi[numchar++] = ch;
ch = (char)getc(f);
}
polinomi[numchar] = '\0';

El fichero contiene lineas como:
25X^0+X^2+3X^2
0X^0+23X^2+8X^4+6X^5

Necesito acabar la función detallada, debe copiar en un array de int[10], sólo números anteriores a las X. PERO el valor que hay después de ^ deber ser la posición del array donde se guardan...
ejemplo: 25X^0+3X^2+88X^2
array[0]=25
array[1]=0
array[2]=3
array[3]=88

Gracias de nuevo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Control arrays

Publicado por Germán B. (143 intervenciones) el 06/05/2001 20:15:58
Varias cosas:
El ejemplo que das no cumple con el enunciado, ya que usás ^0 ^2 ^2 y las posiciones son 0, 1, 2, 3.
Para leer la línea del archivo creo que te conviene la función fgets(), que directamente lee la línea entera y la guarda en un string.
Para acceder a cada valor que sigue al ^, podés usar:
p=strchr(string,'^');
Esto retorna un puntero a la posición del string que tiene ese carácter, o NULL si no lo encuentra.
Para tomar el valor que hay a continuación, podés hacer:
v=atoi(++p);
y luego para acceder a los siguientes:
p=strchr(p,'^');
(así estás buscando el próximo ^, no desde el principio sino desde el que ya encontraste antes + 1).
Para obtener los valores anteriores a las X yo ya había escrito la función en este foro.
Suerte
G
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar