En lenguaje C, cómo leer todos los números de punto flotante de una cadena (el número es desconocido). Los números de punto flotante están separados por espacios.
Si confirma que solo hay números de coma flotante separados por espacios en la cadena, puede usar una matriz de cadenas de caché para guardar temporalmente los caracteres entre el carácter actual y el siguiente espacio, y luego usar atof para conviértalo a un número de coma flotante, luego borre la matriz de cadenas almacenada en caché y continúe leyendo hasta el final de la cadena
#include?
#include?
#define?FLOAT_ARRAY_LENGTH?100
#define?BUFFER_LENGTH?30
void?clear(char?buffer[],int?len )?{ int?i ?=?0; para?(;?i?int?main ()
{ float?f[FLOAT_ARRAY_LENGTH];/*Guardar el número de punto flotante reconocido, tamaño de matriz=?*/ int?count=0; ;?/*Guardar el carácter actual en el siguiente espacio*/ char?prevChar='?';/*Guardar el carácter antes del carácter actual para manejar la situación de múltiples espacios consecutivos*/ int?j=0; test?=? "?12345.67?0.1?1.0.0?";/*Se deben generar 4 números de coma flotante*/ for(int?i=0;test[i]!='\0';i++){
if(prueba[i]!='?'){
búfer[j]=prueba[i];
prevChar=prueba[i];
j++;
}?else?if(prevChar!='?'){
f[count]=atof(buffer);
+ +count;
clear(buffer,BUFFER_LENGTH);
prevChar='?';
j=0;
}/ *Si hay varios espacios consecutivos, no es necesario procesar los siguientes espacios y se pueden omitir*/ } for?(int?i?=?0;?i?
printf("<%d>?%15.3f\n",?i,?f[i]); } return?0;
}