A == B ? string.erase(位置,删除多少个)
要删除数字前的0,以及小数部分末尾的0
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1,s2;
while(cin >> s1>>s2)
{
int t1 = 0;
if(s1[0]=='0')
{
while(s1[t1]=='0'&&s1[t1+1] == '0')
{
t1++;
}
t1++;
s1.erase(0,t1);
}
t1 = 0;
if(s2[0]=='0')
{
while(s2[t1]=='0'&&s2[t1+1] == '0')
{
t1++;
}
t1++;
s2.erase(0,t1);
}
int f1 = 0,f2= 0;
for(int i = 0;i<s1.size();i++)
{
if(s1[i]=='.' && s1[s1.size()-1] == '0')
{
f1=1;
}
}
for(int i = 0;i < s2.size();i++)
{
if(s2[i]=='.'&&s2[s2.size()-1]=='0') f2 = 1;
}
if(f1)
{
t1 = s1.size() - 1;
while(s1[t1]=='0'&&s1[t1-1]=='0')
{
t1--;
}
s1.erase(t1);
}
int t2 = 0;
if(f2)
{
t2 = s2.size() - 1;
while(s2[t2]=='0'&&s2[t2-1]=='0')
{
t2--;
}
s2.erase(t2);
}
for(int i = 0;i<s1.size();i++)
{
if(s1[i]=='.')
s1.erase(i,1);
}
for(int i=0;i<s2.size();i++)
{
if(s2[i]=='.')
s2.erase(i,1);
}
/*cout << s1 << endl;
cout <<s2<<endl;*/
if(s1.size()!=s2.size())
{
printf("NO\n");
goto loop;
}
for(int i = 0;i<s1.size();i++)
{
if(s1[i] != s2[i])
{
printf("NO\n");
goto loop;
}
}
printf("YES\n");
loop:;
}
return 0;
}

浙公网安备 33010602011771号