5:从字符串中取数

来源:互联网 发布:matlab数组求和函数 编辑:程序博客网 时间:2024/06/08 16:16
描述

编写GetDoubleFromString函数,该函数可以不断从字符串中取出正浮点数或整数,无数可取,则返回值小于0

#include <iostream>#include <iomanip>using namespace std;double GetDoubleFromString(char * str){
// 在此处补充你的代码
}int main(){char line[300];while(cin.getline(line,280)) {double n;n = GetDoubleFromString(line);while( n > 0) {cout << fixed << setprecision(6) << n << endl;n = GetDoubleFromString(NULL);}}return 0;}
输入
多组数据,每组数据一行
输出
针对每组数据,将其中的数输出来。每行一个数,保留小数点后面6位。输入数据中只会有正数,不用考虑负号。两个数之间有至少一个非数字非小数点的字符。
样例输入
please 121a1 stand 0.7 9.2 1010.3983 0.00001 black stand what 1324.312.34 45 78ab78.34
样例输出
121.0000001.0000000.7000009.2000001010.3983000.0000101324.30000012.34000045.00000078.00000078.340000
静态本地变量关键字static,生存期为整个函数,作用域为一对大括号内
 static char *p=str;//**************静态本地变量的使用 if(str)//******************静态本地变量的赋值    p = str; while(*p&&!(*p>='0'&&*p<='9')){  p++; } if(!*p){  return -1; } double num=0; while(*p>='0'&&*p<='9'){  num=num*10+*p-'0';  p++; } if(*p=='.'){  int i=10;  p++;  while(*p>='0'&&*p<='9'){   num=num+(double)(*p-'0')/i;   i*=10;   p++;  } } return num;
0 0
原创粉丝点击