마법 주문 문제
12309 단어 C++primer 학습
。 , ; , 。 , “what?”
입력:
100000 , :
[ ]
“ ” “ ” 20 80 , “[” “]”, “]” 。 “@END@” , 。
N(<=1000), N 。 , “[ ]”, “ ”。
출력: 각 테스트 용례의 출력이 한 줄을 차지하고 주문에 대응하는 기능이나 기능에 대응하는 주문을 출력한다.주문이 사전에 없으면 "what?"를 출력합니다.
마법 사전 저장하기 위해 맵 사용하기;
코드는 다음과 같습니다.
1、키보드에서 마법 사전 읽기
/** \ :
*
* \author: JasonLee
* \date : 2017.11.22
*
*/
#include
#include
using namespace std;
map<string,string> insert_data(map<string,string> &magic_map)
{
cout<<"please input data,end with \"-1\""<string str;//
string func;//
while(cin>>str && str != "-1")
{
cin>>func;
magic_map[str]=func;//
// : magic_map.insert(pair(str,func));
}
return magic_map;
}
int main()
{
map<string,string> magic_map;// -
//
magic_map=insert_data(magic_map);
cout<<"1: , "<cout<<"2: , "<cout<<"0:exit!"<cout<<" what?"<int choice;
cout<<" :"<cin>>choice; //
switch(choice)
{
case 1:// ,
{
string search_name;
cout<<" (null ):";
while(cin>>search_name && search_name != "null") //// , null
{
map<string,string>::iterator iter=magic_map.find(search_name);
if(iter != magic_map.end())
{
cout<second<else
{
cout<<"what?"<break;
}
case 2:// ,
{
string search_func;
cout<<" (null ):";
while(cin >> search_func && search_func != "null") // , null
{
map<string,string>::iterator temp=magic_map.begin();
while(temp != magic_map.end())
{
if(temp->second == search_func) // ,
{
break;
}
++temp;//
}
if(temp != magic_map.cend())
{
cout<first<else
{
cout<<"what?"<break;
}
}
return 0;
}
2、파일에서 마법 사전 읽기
코드는 다음과 같습니다.
/** \
*
* \author:
* \date : 2017.11.23
*/
#include
#include
#include
using namespace std;
map<string,string> insert_data(map<string,string> &magic_map)
{
cout<<"please input data,end with \"-1\""<string str;//
string func;//
/* while(cin>>str && str != "-1")//
{
cin>>func;
magic_map[str]=func;//
// : magic_map.insert(pair(str,func));
}*/
ifstream input("magic.txt");//
if(input.is_open())
{
char buffer[128];
while(!input.eof())
{
input>>str;
input.getline(buffer,128);
func=string(buffer);
magic_map[str]=func;
cout<" ------> "<return magic_map;
}
int main()
{
map<string,string> magic_map;// -
//
magic_map=insert_data(magic_map);
cout<<"1: , "<cout<<"2: , "<cout<<"0:exit!"<cout<<" what?"<int choice;
cout<<" :"<cin>>choice; //
switch(choice)
{
case 1:// ,
{
string search_name;
cout<<" (null ):";
while(cin>>search_name && search_name != "null") //// , null
{
map<string,string>::iterator iter=magic_map.find(search_name);
if(iter != magic_map.end())
{
cout<second<else
{
cout<<"what?"<break;
}
case 2:// ,
{
string search_func;
cout<<" (null ):";
while(cin >> search_func && search_func != "null") // , null
{
map<string,string>::iterator temp=magic_map.begin();
while(temp != magic_map.end())
{
if(temp->second == search_func) // ,
{
break;
}
++temp;//
}
if(temp != magic_map.cend())
{
cout<first<else
{
cout<<"what?"<break;
}
}
return 0;
}