标签:iostream spl har splay none 一个 pop check case
1.括号的匹配
#include<iostream> #include<stack> using namespace std; int check(string str){ stack<char> s; int len=str.length(); for(int i=0;i<len;i++){ char a=str[i]; switch(a){ case ‘(‘: case ‘[‘: case ‘{‘: s.push(a);//若是左括号,则进行入栈操作 break; //若是右括号,则进行出栈操作,若出栈元素不是与输入相对应的左括号,则字符串括号中不匹配,返回 case ‘)‘: if(s.top()!=‘(‘) return 0; s.pop(); break; case ‘}‘: if(s.top()!=‘{‘) return 0; s.pop(); break; case ‘]‘: if(s.top()!=‘]‘) return 0; s.pop(); break; } } int re=0;//定义并初始化判断函数的返回值 re=s.empty();//返回盘空函数的返回值 if(re) return 1;//栈为空 else return 0;//栈不为空,有左括号,即存在‘(’或‘[‘或‘{‘未匹配 } int main() //主函数 { string str; //定义一个单字符数组以存储键盘输入的字符串。 cout<<"请您输入一个长度小于100的字符串:"<<endl; while(cin>>str){ //从键盘输入字符存储到字符数组中,有输入则继续。 int re=check(str); if(re==1) cout<<"您输入的字符串中的括号完全匹配!"<<endl; else if(re==0) cout<<"您输入的字符串中的括号不匹配!"<<endl;} }
标签:iostream spl har splay none 一个 pop check case
原文地址:https://www.cnblogs.com/helloworld2019/p/10353738.html