天天看点

1052 卖个萌 (20 分)C++

萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:

左手[右手]

现给出可选用的符号集合,请你按用户的要求输出表情。

输入格式:

输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号 []内。题目保证每个集合都至少有一个符号,并不超过 10 个符号;每个符号包含 1 到 4 个非空字符。

之后一行给出一个正整数 K,为用户请求的个数。随后 K 行,每行给出一个用户的符号选择,顺序为左手、左眼、口、右眼、右手——这里只给出符号在相应集合中的序号(从 1 开始),数字间以空格分隔。

输出格式:

对每个用户请求,在一行中输出生成的表情。若用户选择的序号不存在,则输出 Are you kidding me? @/@。

输入样例:

[╮][╭][o][][/] [<][>]

[╯][╰][^][-][=][>][<][@][⊙]

[Д][▽][_][ε][^] …

4

1 1 2 2 2

6 8 1 5 5

3 3 4 3 3

2 10 3 9 3

输出样例:

╮(╯▽╰)╭

<(@Д=)/~

o(ε)o

Are you kidding me? @/@

注意事项:

1.读入用getline(cin,str),过滤[ ]得到表情,我的电脑读不进去部分符号,但是只要程序对了,还是就通过了。

我的输出:

1052 卖个萌 (20 分)C++

2.用户的输入应该>0并且<=表情的总量

3.Are you kidding me? @/@要写成

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
	string str;
	vector<string>bq[3];
	for (int i = 0; i < 3; i++)
	{
		getline(cin, str);
		for (int j = 0; j < str.size();)
		{
			string s;
			if (str[j] == '[')
				for (int k = j + 1; k < str.size(); k++)
					if (str[k] != ']')
						s += str[k];
					else
					{
						j = k + 1;
						break;
					}
			else
			{
				j++;
				continue;
			}
			bq[i].push_back(s);
		}
	}
	int n,a;
	cin >> n;
	vector<string>output(n);
	for (int i = 0; i < n; i++)
	{
		string s;
		for (int j = 0; j < 5; j++)
		{
			cin >> a;
			if (j ==0||j==4)
			{
				if (a > bq[0].size()||a<=0)
				{
					s = "Are you kidding me? @\\/@";
					break;
				}
				else
				{
					if (j == 0)
						s += bq[0][a - 1] + "(";
					else
						s += ")" + bq[0][a - 1];
				}	
			}
			else if (j == 2)
			{
				if (a > bq[2].size()||a<=0)
				{
					s = "Are you kidding me? @\\/@";
					break;
				}
				else
					s += bq[2][a - 1];
			}
			else
			{
				if (a > bq[1].size()||a<=0)
				{
					s = "Are you kidding me? @\\/@";
					break;
				}
				else
					s += bq[1][a - 1];
			}
		}
		output[i] = s;
	}
	for (int i = 0; i < output.size(); i++)
	{
		if (i<output.size()-1)
			cout << output[i]<<endl;
		else
			cout << output[i];
	}
	return 0;
}