学到了新函数:sscanf和sprintf,memset()。
用法:
sscanf:
sscanf函数用法详解
sprintf:
sprintf()函数的用法
此题中用到新函数的地方:组合char s[100];
将字符串拼接起来;
sprintf(s,"%d+%d=%d",n1,n2,n1+n2);
memset:
解释memset(a,‘0’,sizeof(a)); 的意思
用来将字符串清0:
memset(s,0,sizeof(s));
另:字符串貌似可以直接赋值char,如:
string a;
char op;
cin>>a;
op=a[0];
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,n1,n2;
string a;
char op;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a;
//是字符
if(a[0]>='a'&&a[0]<='c')
{
cin>>n1>>n2;
op=a[0];
}
//不是字符
else
{
int temp=0;
for(int j=0;a[j];j++)
{
temp=temp*10+(a[j]-'0');
}
n1=temp;
cin>>n2;
}
char s[100];
switch(op)
{
case 'a':
{
sprintf(s,"%d+%d=%d",n1,n2,n1+n2);
break;
}
case 'b':
{
sprintf(s,"%d-%d=%d",n1,n2,n1-n2);
break;
}
case 'c':
{
sprintf(s,"%d*%d=%d",n1,n2,n1*n2);
break;
}
}
cout<<s<<endl<<strlen(s)<<endl;
memset(s,0,sizeof(s));
}
return 0;
}