"a+b*((e+(c-d)*f)/h)"一个运算表达式的字符串,怎么分别获取到a,b,c,d,e,f,h变量然后赋值
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/19 03:18:39
"a+b*((e+(c-d)*f)/h)"一个运算表达式的字符串,怎么分别获取到a,b,c,d,e,f,h变量然后赋值
例如:最后赋值后运算该表达式1+2*((3+(4-2.5)*5)/6)
例如:最后赋值后运算该表达式1+2*((3+(4-2.5)*5)/6)
![](/uploads/image/z/19492153-25-3.jpg?t=%22a%2Bb%2A%28%28e%2B%28c-d%29%2Af%29%2Fh%29%22%E4%B8%80%E4%B8%AA%E8%BF%90%E7%AE%97%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%2C%E6%80%8E%E4%B9%88%E5%88%86%E5%88%AB%E8%8E%B7%E5%8F%96%E5%88%B0a%2Cb%2Cc%2Cd%2Ce%2Cf%2Ch%E5%8F%98%E9%87%8F%E7%84%B6%E5%90%8E%E8%B5%8B%E5%80%BC)
没有明白你的具体意思,估计是表达式求值吧.如果是表达式求值,明显使用堆栈.
建立一个堆栈
将包括括号以及运算符号的所有ASCII码依次按规则压入堆栈
规则如下:
从右向左依次开始压入,碰到字符和运算符和")"不管,当碰到"("时,弹栈直到弹出第一个'")",然后将弹出的内容求值,继续依照上述规则压栈.
一直压栈直到最左边的元素时,弹栈,求值.
如果你是要从"a+b*((e+(c-d)*f)/h)"这个字符串里求值,可以用相关字符串操作函数,比如strcompare()等函数等,获取到a,b……的ASCII码,
比如c++6的库函数里有一个strtok()函数,可以设定一个标志字符,本例里可以设置
char* source = "a+b*((e+(c-d)*f)/h)";
char* delimes = "+";
char* resoult = null;
执行函数 resoult = strtok(delimes,source) 即可用resoult返回第一个“+”以前的所有字符,而此时source里将保留剩下的字符,可以再次定义一个delimes获取其他字符.
然后将返回的各字符ASCII码转换为整形数即可.ASCII码转整形只相差一个常数,如果不记得,可以用a-"0"计算得出.
你的式子还算简单,都是单个字母的变量,如果变量名较长,可能还需要用到模式匹配算法等.
建立一个堆栈
将包括括号以及运算符号的所有ASCII码依次按规则压入堆栈
规则如下:
从右向左依次开始压入,碰到字符和运算符和")"不管,当碰到"("时,弹栈直到弹出第一个'")",然后将弹出的内容求值,继续依照上述规则压栈.
一直压栈直到最左边的元素时,弹栈,求值.
如果你是要从"a+b*((e+(c-d)*f)/h)"这个字符串里求值,可以用相关字符串操作函数,比如strcompare()等函数等,获取到a,b……的ASCII码,
比如c++6的库函数里有一个strtok()函数,可以设定一个标志字符,本例里可以设置
char* source = "a+b*((e+(c-d)*f)/h)";
char* delimes = "+";
char* resoult = null;
执行函数 resoult = strtok(delimes,source) 即可用resoult返回第一个“+”以前的所有字符,而此时source里将保留剩下的字符,可以再次定义一个delimes获取其他字符.
然后将返回的各字符ASCII码转换为整形数即可.ASCII码转整形只相差一个常数,如果不记得,可以用a-"0"计算得出.
你的式子还算简单,都是单个字母的变量,如果变量名较长,可能还需要用到模式匹配算法等.
C语言的一个判断提下面那个是符合C语言语法的赋值表达式A.d=9+e+f=d=9 B.d=9+e,f=d+9C.=a+b
a/b=c/d e/f=g/h ,a/b+c/d=e/f+g/h吗?
A B C D E F G H I J K L 的音标分别是什么?
符合C语言语法的赋值表达式是A、d=9+e+f=d+9 B、d=9+e,f=d+9 C、d=9+e,e++,d+9 D、
A B C D* A D-------------F C B E A H B F G-------------J C A
9、以下符合C语言语法的赋值表达式是 A、d=9+e+f=d+9 B、d=9+e,f=d+9 C、d=9+e,e++,d
如图中,A、B、C、D、E是单质,G、H、I、F是B、C、D、E分别和A形成的含两种元素的化合物.
如图中,A、B、C、D、E是单质G、H、I、F是B、C、D、E分别和A形成的二元化合物。已知:
已知U={a,b,c,d,e,f,g,h} 已知A的补集交B的补集={A,B,C,E,F,G,H},
把英文字母A,B,C,D,E,F,G,H分成两类,怎么分?
a b c d e f g h i 如何变为:a b c d e f i 以上每个字母占用一个单元格
求A B C D E H