10828-스택기초
역시나 문자열 관련이 제일 짜증나고 싫다..
push 100 처럼 문자열안에서 숫자를 뽑아내야 하는데 처음에는 파싱하다가
cin 을 사용하면 띄어쓰기만큼 읽기 때문에
두번 사용하면 깔금하게 해결가능하다.
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stack>
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
int n=0;
stack<int> S;
cin >> n;
string str;
while (n--)
{
//char str[100005];
//gets(str);
cin >> str;
char tmp[10];
for (int i = 0; str[i] != 32; i++)
{
if (!strcmp(str, "push"))
{
int num;
cin >> num;
S.push(num);
break;
}
else if (!strcmp(str, "pop"))
{
if (!S.empty())
{
int tmp = S.top();
S.pop();
printf("%d\n", tmp);
}
else
printf("-1\n");
break;
}
else if (!strcmp(str, "empty"))
{
if (!S.empty())
{
printf("0\n");
}
else
printf("1\n");
break;
}
else if (!strcmp(str, "size"))
{
printf("%d", S.size());
break;
}
else if (!strcmp(str, "top"))
{
if (!S.empty())
{
int tmp = S.top();
printf("%d\n", tmp);
}
else
printf("-1\n");
break;
}
}
//printf("%s", str);
}
system("pause");
return 0;
}