前缀表达式-怎样用空格分隔一个字符串

 1 #include<iostream>
 2 #include<cstdlib>
 3 #include<stack>
 4 #include<string>
 5 #include<sstream>
 6 using namespace std;
 7 stack<double>s;
 8 char a[100][20];
 9 int main(){
10     string str;
11     getline(cin, str);
12     istringstream iss(str);
13     int i = 0;
14     while(!iss.eof()){
15         iss>>a[i++];
16     }
17     i--;
18     for(;i>=0;i--){
19         if(atof(a[i])!=0)
20             s.push(atof(a[i]));
21         else{
22             string si = a[i];
23             double d1 = s.top();
24             s.pop();
25             double d2 = s.top();
26             s.pop();
27             if(si=="*")d1*=d2;
28             else if(si=="+")d1+=d2;
29             else if(si=="-")d1-=d2;
30             else if(si=="/")d1/=d2;
31             s.push(d1);
32         }
33     }
34     printf("%f\n",s.top());
35     return 0;
36 }

备注:主要就是利用标黄的那几行!

非常好用!

原文地址:https://www.cnblogs.com/fangziyuan/p/12151791.html

时间: 2024-10-20 07:07:17

前缀表达式-怎样用空格分隔一个字符串的相关文章

C#如何分割多个空格分隔的字符串?

using System; using System.Text; using System.Text.RegularExpressions; namespace test { class Program { public static void Main(string[] args) { string pp="1063792.4 2764405.825 5.464413E-05 -1.780467E-04"; string[] mm=Regex.Split(pp,"\\s+&

使用Python运算一个字符串表达式

概述: 如何运行一个表达式,例如:12+23*4/2这个我想大家都很了解.不过,如果这个表达式是一个字符串呢?或是这样来描述,一个表达式被写成了一个字符串,我们又应该如何去运行并求得值呢?你是否会想,如果我们能够拿到12, 23, 4, 2以及中间的运算符,那就是真的太好了.而事实上,我们也正是在朝着这个方向去努力.如果你学过算法或是数据结构,那我想这个小问题便不会阻止你前进了. 思路分析: 如概述所说,如果我们能拿到字符串表达式中中各个我们肉眼能够识别的"元素",就算我们迈过了第一步

shell if判断(曾经被一个字符串相等的判断纠结半小时,最后只是if后少了个空格!) 和 awk引用外部变量判断

一.if判断 数字: $A=12 $B=15 if(("$A"<"$B")) if(("$A"=="$B")) 字符串: $A="HELLO" $B="WORLD" if [ "$A" = "FACT_LOGIN_USER" ] if [ "$A" = "$B" ] PS:字符串比较的时候注意 'if'

输入任意长的一个字符串,统计其字母、数字、空格及其他字符的数量。

思路:简单的利用一个多重 if 结构就可以解决. CODE: import java.util.Scanner; public class Character{ public static void main(String[] args){ System.out.println ("请输入一个字符串:"); Scanner ss = new Scanner(System.in); String sc = ss.nextLine(); char[] ch= sc.toCharArray(

c# 以空格分隔字符串

经常我们需要把一个字符串以空格分隔开,但是如果原字符串中间有多个字符串就是出现问题,只包含一个空格的字符串会出现,为了避免出现此情况,我们可用下面的方法 String tmp = "hello world    haha";tmp = System.Text.RegularExpressions.Regex.Replace(tmp, @"\s+", ",");  //替换字符必须在原字符串中没有出现string[] arr = tmp.Split

c# 字符串中多个连续空格转为一个空格

#region 字符串中多个连续空格转为一个空格 /// <summary> /// 字符串中多个连续空格转为一个空格 /// </summary> /// <param name="str">待处理的字符串</param> /// <returns>合并空格后的字符串</returns> public static string MergeSpace(string str) { if (str != string

divmod(a,b)函数是实现a除以b,然后返回商与余数的元组、eval可以执行一个字符串形式的表达式、exec语句用来执行储存在字符串或文件中的Python语句

1 #!/usr/bin/env python 2 a = 10/3 3 print(a) 4 #divmod计算商与余数 5 r = divmod(10001,20) 6 print(r) 7 #eval可以执行一个字符串形式的表达式 8 ret = eval("1 + 3") 9 c = eval("a + 60",{"a": 99}) 10 print(ret) 11 print(c) 12 """exec语句

【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”

//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void replace(char *src) { assert(src); int OldLen = 0; //原字符串长度 int NewLen = 0; //新字符串长度 int BlackNum = 0; //空格数量 int NewBack = 0; //新字符串尾部 int OldBack = 0; //原

统计一个字符串中英文字母、空格、数字和其它字符的个数

1 package demo; 2 import java.util.Scanner; 3 /** 4 * 统计一个字符串中英文字母.空格.数字和其它字符的个数 5 */ 6 public class Statistics1 { 7 public static void main(String[]args){ 8 int i; 9 int LetterCount = 0; 10 int SpaceCount = 0; 11 int NumberCount = 0; 12 int OtherCou