题目要求:
两个数使用string 表示,请实现一个函数,将他们相加。
注意:
1. 该数可能包含小数,比如:123.07+8796
2. 输入可能有误,请检查是否合法,不合法返回值为false
3. 该数不包含科学计数法。
关键在于提取字符串中的数字信息,然后分辨数字的合法性。比如02+1.2,2.+2,2.3+.2等等不合法情况。主要思路是首先提取符号“.”和“+”的位置,为提取数字做准备,记录符号位置以后,就可以提取一个个单独数字构成一个数。细节中要注意“.”的问题,可能存在一个,且在加号前或者后,可能不存在,可能同时存在两个,一个在加号前,一个在加号后。
附上自己写的代码,仅供参考:
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int main()
{
string a;
int i,d,k=0,p=0,l1=0,l2=0; //k为加号位置,l1为第一个小数点位置,l2记录的二个小数点的位置,p记录加符号的数量
double q,b,c; //q为第一个数,b为第二个数,c为结果
cin>>a;
d=a.length();
for(i=0;i<=d-1;++i)
{
if((a[i]>='0'&&a[i]<=