

学到了新函数: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;
}
本文介绍了C++中处理字符串的三个关键函数:sscanf用于从字符串中读取格式化数据,sprintf用于将格式化的数据写入字符串,而memset用于清空字符串。在给定的代码示例中,这些函数被用于根据输入的操作符(加、减、乘)生成表达式并输出结果。程序读取用户输入,判断操作类型,并利用switch-case结构调用sprintf生成相应运算的字符串。最后,使用memset将字符串清零,为下一次循环做准备。
973

被折叠的 条评论
为什么被折叠?



