c语言中,怎么使用字符串表示的运算符
intop(chara,charp,charb){intx,y,z;//x=(int)a;//y=(int)b;z=xpy;p是运算符,这句该怎么写呀returnz;}谢...
int op(char a ,char p,char b)
{
int x,y,z;
//x=(int)a;
// y=(int)b;
z=xpy;p是运算符,这句该怎么写呀
return z;
}
谢谢啦,帮帮忙 展开
{
int x,y,z;
//x=(int)a;
// y=(int)b;
z=xpy;p是运算符,这句该怎么写呀
return z;
}
谢谢啦,帮帮忙 展开
展开全部
1、一个字符串里面包含运算符,要转成正常运算的运算符,可以用 宏指令。相当于直接执行语句。宏指令在不同语言中执行方式不同的。
2、例程:
//基本的堆栈思想
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int * base;
int * top;
int size;
} stack_i;
void initStack_I(stack_i * int_sta)
{
int_sta->base = (int *)malloc(sizeof(int) * 100);
int_sta->top = int_sta->base;
int_sta->size = 100;
}
void deleteStack_I(stack_i * int_sta)
{
free(int_sta->base);
}
void push_I(stack_i * int_sta, int i)
{
if(int_sta->top - int_sta->base >= int_sta->size)
{
return;
}
*(int_sta->top++) = i;
}
void pop_I(stack_i * int_sta, int * i)
{
if(int_sta->top == int_sta->base)
{
return;
}
*i = *(--int_sta->top);
}
int main(void)
{
int i;
int temp, temp1;
int sum = 0;
char c; //当前字符
char lastc = 0; //上一个字符
stack_i IS;
initStack_I(&IS);
scanf("%d", &i); //接收第一个数字
push_I(&IS, i); //压栈
while(1)
{
scanf("%c", &c); //接收第一个字符
if(c == '\n') //换行符就退出
{
break;
}
switch(c)
{
case '+':
if(lastc == '+') //上次也是一个加号的话
{
pop_I(&IS, &temp); //弹出上一个数字
pop_I(&IS, &temp1); //弹出上一个数字
sum = temp + temp1; //加法计算
push_I(&IS, sum); //新的结果压栈
}
scanf("%d", &i); //接收一个数字进来
push_I(&IS, i); //压栈
lastc = c;
break;
case '*':
scanf("%d", &i); //接收一个数字进来
pop_I(&IS, &temp); //弹出上一个数字
sum = i * temp; //乘法计算
push_I(&IS, sum); //新的结果压栈
break;
}
}
temp1 = 0;
pop_I(&IS, &temp);
pop_I(&IS, &temp1);
sum = temp + temp1;
printf("%d\n", sum);
deleteStack_I(&IS);
return 0;
}
展开全部
猜你是想完成类似于 a+b,a-b...之类的运算吧。
一句完不成,得进行判断。如:
if(op=='+')z=x+y;
else if(op=='-')z=x-y;
else if(op=='*')z=x*y;
....
return z;
一句完不成,得进行判断。如:
if(op=='+')z=x+y;
else if(op=='-')z=x-y;
else if(op=='*')z=x*y;
....
return z;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(p=='+')
z=x+y;
if(p=='-')
z=x-y;
后面的类似
z=x+y;
if(p=='-')
z=x-y;
后面的类似
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询