#include<iostream>
#include<string>
int main()
{
using namespace std;
char a,b;
string A,B;
int i,t,x=0,y=0,num1=0,num2=0;
cin>>A>>a>>B>>b;
for(i=0;i<A.length();i++)
{
if(A[i]==a)
x++;
}
for(i=0;i<B.length();i++)
{
if(B[i]==b)
y++;
}
if(x==0)
num1=0;
else
{
t=a-'0';
for(i=0;i<x;i++)
{
num1+=t;
t=10*t;
}
}
if(y==0)
num2=0;
else
{
t=b-'0';
for(i=0;i<y;i++)
{
num2+=t;
t=10*t;
}
}
cout<<(num1+num2);
return 0;
}
- 注意:a,b要定义成char类型,不要定义成整型。在进行运算的时候要把a和b强制类型转换
代码优化
#include<iostream>
#include<string>
int main()
{
using namespace std;
char a,b;
string A,B;
int i,num1=0,num2=0;
cin>>A>>a>>B>>b;
for(i=0;i<A.length();i++)
{
if(A[i]==a)
num1=num1*10+(a-'0');
}
for(i=0;i<B.length();i++)
{
if(B[i]==b)
num2=num2*10+(b-'0');
}
cout<<(num1+num2);
return 0;
}
代码优化(但是出现运行超时)
#include<iostream>
#include<string>
int main()
{
using namespace std;
char a,b;
string A,B;
string num1="",num2="";
cin>>A>>a>>B>>b;
for(int i=0;i<A.length();i++)
{
if(A[i]==a)
num1+=a;
}
for(int i=0;i<B.length();i++)
{
if(B[i]==b)
num2+=b;
}
int sum=stoi(num1)+stoi(num2);//利用stoi函数将字符串转换成int类型,stoi包含在<cstring>中
cout<<sum<<endl;
return 0;
}