當前位置:編程學習大全網 - 編程軟體 - C語言中,請問如何從字符串中讀取所有的浮點數(個數不知道),浮點數以空格隔開

C語言中,請問如何從字符串中讀取所有的浮點數(個數不知道),浮點數以空格隔開

如果確認字符串中只有空格分開的浮點數的話,可以利用壹個緩存字符串數組,?臨時保存當前字符到下壹個空格之間的字符,?然後利用atof把它轉換為浮點數,然後清空緩存字符串數組,繼續讀取,直到字符串尾

#include?<stdlib.h>

#include?<stdio.h>

#define?FLOAT_ARRAY_LENGTH?100

#define?BUFFER_LENGTH?30

void?clear(char?buffer[],int?len)?{

int?i?=?0;

for?(;?i?<?len;?i++)?{

buffer[i]='\0';

}

}

int?main()

{

float?f[FLOAT_ARRAY_LENGTH];/*保存識別出的浮點數,數組大小=?*/

int?count=0;

char?buffer[BUFFER_LENGTH];?/*保存當前字符到下壹個空格間的字符*/

char?prevChar='?';/*保存當前字符前壹個字符,以處理連續多個空格的情況*/

int?j=0;

char?*test?=?"?12345.67?0.1?1.0.0?";/*應該輸出4個浮點數*/

for(int?i=0;test[i]!='\0';i++){

if(test[i]!='?'){

buffer[j]=test[i];

prevChar=test[i];

j++;

}?else?if(prevChar!='?'){

f[count]=atof(buffer);

++count;

clear(buffer,BUFFER_LENGTH);

prevChar='?';

j=0;

}/*如果有連續多個空格,則後面的空格無需處理,跳過即可*/

}

for?(int?i?=?0;?i?<?count;?i++)?{

printf("<%d>?%15.3f\n",?i,?f[i]);

}

return?0;

}

  • 上一篇:高郵教育局電話號碼是多少
  • 下一篇:iqoo遊戲手柄搖桿設置
  • copyright 2024編程學習大全網