写一个错误的题解吧;大家能看出来哪里错了吗,
#include <iostream> #include <algorithm> using namespace std; int main() { string tb = "345678910JQKA2jokerJOKER"; string s; while(getline(cin, s)) { int idx =s.find('-'); string s1=s.substr(0,idx); string s2=s.substr(idx+1,s.size()); if (s1.size()==s2.size())//若两手牌数量相同,找第一个牌相比较,输出大的 {string s11=s1.substr(0,1); string s22=s2.substr(0,1); tb.find(s11)>tb.find(s22)?printf("%s",s1.c_str()):printf("%s",s2.c_str()); } else if (s1.size()!=s2.size()) {if (s.find("joker JOKER")!=s.npos)//如果有大小王,就输出大小王。 {cout<<"joker JOKER"<<endl;} else if (s1.size()==7)//炸弹加空格,size==7 cout<<s1; else if (s2.size()==7) cout<<s2; else cout<<"ERROR"; } } }
不能用size 来判断,还是得用空格来判断啊,A和10比较会ERROR;