Bootstrap

语句解析 洛谷 - P1597

Background

木有背景……

Description

一串长度不超过 255255 的 PASCAL 语言代码,只有 a,b,ca,b,c 三个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,每条赋值语句的格式是 [变量]:=[变量或一位整数];。未赋值的变量值为 00 输出 a,b,ca,b,c 的值。

Input

一串符合语法的 PASCAL 语言,只有 a,b,ca,b,c 三个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,未赋值的变量值为 00。

Output

输出 a,b,c最终的值。

Sample 1

InputcopyOutputcopy
a:=3;b:=4;c:=5;
3 4 5

Hint

输入的 PASCAL 语言长度不超过 255255。

#include <iostream>
#include <cstring>
#include <sstream>
#include <string>
using namespace std;
int a, b, c;
int Getval(char ch)
{
	switch (ch)
	{
		case 'a':
			return a;
		case 'b':
			return b;
		case 'c':
			return c;
	}
	return ch - '0';
}
void Getval(char str[])
{
	int Sizes = strlen(str);
	char ch = str[3];
	switch (str[0])
	{
		//第一个字符就是要赋值的字母
		case 'a':
			a = Getval(ch);
			break;
		case 'b':
			b = Getval(ch);
			break;
		case 'c':
			c = Getval(ch);
			break;
	}
}
int main()
{
	char tmp[128]={0};
	string str;
	cin >> str;
	for(int i=0;i<str.length();i++) if(str[i] == ';') str[i] = ' ';
	stringstream ss(str);
	while(ss >> tmp)
	{
		Getval(tmp);
	}
	cout << a << ' ' << b << ' ' << c << endl;
	return 0;
}

;