📄 ck_str.cpp
字号:
{ WyStr tmp; size_t cap=tmp._capacity(); CHK_DEFAULT(tmp); if((r=tmp.append('f'))!=Ok) { WY_THROW(r); } if(cap!=tmp._capacity()) { WY_THROW(WyRet() ); // capacity should no have changed } if(tmp._reserve(cap)!=Ok) { WY_THROW(WyRet() ); // capacity should no have changed } if(cap!=tmp._capacity()) { WY_THROW(WyRet() ); // capacity should no have changed } // double tmp's capacity if(tmp._reserve(cap+cap)!=Ok) { WY_THROW(WyRet() ); } if(cap==tmp._capacity()) { WY_THROW(WyRet() ); } WyStr(tmp).swap(tmp); if(cap!=tmp._capacity()) { WY_THROW(WyRet() ); } { const char* obuf=tmp.data(); size_t cap2=tmp._capacity(); for(size_t i=tmp.size(); i<cap2; ++i) { if((r=tmp.append('x'))!=Ok) { WY_THROW(r); } } if(tmp._capacity()!=cap2) { WY_THROW(WyRet() ); } if(tmp.data()!=obuf) { WY_THROW(WyRet() ); } } } // find(size_t*,char) { const WyStr tmp; size_t res; res=100; if(tmp.find(&res,'a')==true) { WY_THROW(WyRet() ); } const WyStr tmp1("ppooiiuuyy\xaa"); if(tmp1.find(&res,'p')==false) { WY_THROW(WyRet() ); } if(res!=0) { WY_THROW(WyRet() ); } if(tmp1.find(&res,'i')==false) { WY_THROW(WyRet() ); } if(res!=4) { WY_THROW(WyRet() ); } if(tmp1.find(&res,'y')==false) { WY_THROW(WyRet() ); } if(res!=8) { WY_THROW(WyRet() ); } if(tmp1.find(&res,'#')==true) { WY_THROW(WyRet() ); } if(res!=8) { WY_THROW(WyRet() ); } if(tmp1.find(&res,'\xaa')==false) { WY_THROW(WyRet() ); } if(res!=10) { WY_THROW(WyRet() ); } if(tmp1.find(&res,'\x2a')==true) { WY_THROW(WyRet() ); } if(res!=10) { WY_THROW(WyRet() ); } }#ifdef WY_DEBUG // chk the result of std::find(char) consistent with the test above { const std::string tmp; size_t res; res=100; if((res=tmp.find('a'))!=StdNPos) { WY_THROW(WyRet() ); } const std::string tmp1("ppooiiuuyy"); if((res=tmp1.find('p'))==StdNPos) { WY_THROW(WyRet() ); } if(res!=0) { WY_THROW(WyRet() ); } if((res=tmp1.find('i'))==StdNPos) { WY_THROW(WyRet() ); } if(res!=4) { WY_THROW(WyRet() ); } if((res=tmp1.find('y'))==StdNPos) { WY_THROW(WyRet() ); } if(res!=8) { WY_THROW(WyRet() ); } if((res=tmp1.find('#'))!=StdNPos) { WY_THROW(WyRet() ); } }#endif // rfind(size_t*,char) { const WyStr tmp; size_t res; res=100; if(tmp.rfind(&res,'a')==true) { WY_THROW(WyRet() ); } const WyStr tmp1("ppooiiuuyy"); if(tmp1.rfind(&res,'p')==false) { WY_THROW(WyRet() ); } if(res!=1) { WY_THROW(WyRet() ); } if(tmp1.rfind(&res,'i')==false) { WY_THROW(WyRet() ); } if(res!=5) { WY_THROW(WyRet() ); } if(tmp1.rfind(&res,'y')==false) { WY_THROW(WyRet() ); } if(res!=9) { WY_THROW(WyRet() ); } if(tmp1.rfind(&res,'#')==true) { WY_THROW(WyRet() ); } if(res!=9) { WY_THROW(WyRet() ); } }#ifdef WY_DEBUG // std::string chk for rfind(size_t*,char) { const std::string tmp; size_t res; res=100; if((res=tmp.rfind('a'))!=StdNPos) { WY_THROW(WyRet() ); } const std::string tmp1("ppooiiuuyy"); if((res=tmp1.rfind('p'))==StdNPos) { WY_THROW(WyRet() ); } if(res!=1) { WY_THROW(WyRet() ); } if((res=tmp1.rfind('i'))==StdNPos) { WY_THROW(WyRet() ); } if(res!=5) { WY_THROW(WyRet() ); } if((res=tmp1.rfind('y'))==StdNPos) { WY_THROW(WyRet() ); } if(res!=9) { WY_THROW(WyRet() ); } if((res=tmp1.rfind('#'))!=StdNPos) { WY_THROW(WyRet() ); } }#endif // find(size_t*,size_t,char) { const WyStr tmp; size_t res; res=100; if(tmp.find(&res,0,'a')==true) { WY_THROW(WyRet() ); } if(res!=100) { WY_THROW(WyRet() ); } const WyStr tmp1("rstuvwyyz"); res=100; if(tmp1.find(0,0,'s')==false) { WY_THROW(WyRet() ); } if(tmp1.find(&res,0,'s')==false) { WY_THROW(WyRet() ); } if(res!=1) { WY_THROW(WyRet() ); } int i; for(i=0; tmp1.find(&res,i,tmp1[tmp1.size()-1]); ++i,++res) { if(res!=tmp1.size()-1) { WY_THROW(WyRet() ); } }; if(i!=int(tmp1.size())) { WY_THROW(WyRet() ); } for(i=0; i<int(tmp1.size()); ++i) { if(tmp1.find(&res,i,'#')) { WY_THROW(WyRet() ); } }; }#ifdef WY_DEBUG // chk find(size_t*,size_t,char), std::string version { const std::string tmp; size_t res; res=100; if((res=tmp.find('a',0))!=StdNPos) { WY_THROW(WyRet() ); } const std::string tmp1("rstuvwyyz"); res=100; if((res=tmp1.find('s',0))==StdNPos) { WY_THROW(WyRet() ); } if((res=tmp1.find('s',0))==StdNPos) { WY_THROW(WyRet() ); } if(res!=1) { WY_THROW(WyRet() ); } int i; for(i=0; i<int(tmp1.size()); ++i) { if((res=tmp1.find('#',i))!=StdNPos) { WY_THROW(WyRet() ); } }; }#endif // rfind(size_t*,size_t,ch) { const WyStr tmp; size_t res; res=100; if(tmp.rfind(&res,0,'a')==true) { WY_THROW(WyRet() ); } if(res!=100) { WY_THROW(WyRet() ); } const WyStr tmp1("rstuvwyyz"); res=100; if(tmp1.rfind(0,100,'s')==false) { WY_THROW(WyRet() ); } if(tmp1.rfind(&res,100,'s')==false) { WY_THROW(WyRet() ); } if(res!=1) { WY_THROW(WyRet() ); } int i; for(res=tmp1.size()-1,i=tmp1.size()-1; (i>=0)&&(tmp1.rfind(&res,100,tmp1[res])); --i,--res) { if(i!=int(res)) { if(int(res)<i) { WY_THROW(WyRet() ); } if(tmp1[res]!='y') { // we have 2 y's WY_THROW(WyRet() ); } } }; //if(res>=tmp1.size()) { // WY_THROW(WyRet() ); //} for(res=tmp1.size()-1,i=tmp1.size()-1; (i>=0)&&(tmp1.rfind(&res,res,tmp1[res])); --i,--res) { if(i!=int(res)) { WY_THROW(WyRet() ); } }; //if(res>=tmp1.size()) { // WY_THROW(WyRet() ); //} for(i=0; i<int(tmp1.size()); ++i) { if(tmp1.rfind(&res,i,'#')) { WY_THROW(WyRet() ); } }; }#ifdef WY_DEBUG // rfind(size_t*,size_t,ch) chk std::string version { const std::string tmp; size_t res; res=100; if((res=tmp.rfind('a',0))!=StdNPos) { WY_THROW(WyRet() ); } const std::string tmp1("rstuvwyyz"); res=100; if((res=tmp1.rfind('s',100))==StdNPos) { WY_THROW(WyRet() ); } if((res=tmp1.rfind('s',100))==StdNPos) { WY_THROW(WyRet() ); } if(res!=1) { WY_THROW(WyRet() ); } int i; for(i=0; i<int(tmp1.size()); ++i) { if((res=tmp1.rfind('#',i))!=StdNPos) { WY_THROW(WyRet() ); } }; }#endif // find(size_t*,size_t,const char*,size_t) { const WyStr tmp; size_t res; res=100; if(tmp.find(&res,0, WyCSeg("a",size_t(0)))==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } if(tmp.find(&res,0, WyCSeg("a",1))==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } const WyStr tmp1("rstuwywyyz"); res=100; if(tmp1.find(0,0, WyCSeg("wy",2))==false) { WY_THROW( WyRet() ); } if(tmp1.find(&res,0, WyCSeg("wy",2))==false) { WY_THROW( WyRet() ); } if(res!=4) { WY_THROW( WyRet() ); } int i; for(i=0; tmp1.find(&res,i,WyCSeg(&tmp1[tmp1.size()-2],2)); ++i,++res) { if(res!=tmp1.size()-2) { WY_THROW( WyRet() ); } }; if(i!=int(tmp1.size())-1) { WY_THROW( WyRet() ); } for(i=0; i<int(tmp1.size()); ++i) { if(tmp1.find(&res,i, WyCSeg("#",1))) { WY_THROW( WyRet() ); } }; } // find(size_t*,size_t,const char*) { const WyStr tmp; size_t res; res=100; if(tmp.find(&res,0,"")==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } if(tmp.find(&res,0,"a")==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } const WyStr tmp1("rstuwywyyz"); res=100; if(tmp1.find(0,0,"wy")==false) { WY_THROW( WyRet() ); } if(tmp1.find(&res,0,"wy")==false) { WY_THROW( WyRet() ); } if(res!=4) { WY_THROW( WyRet() ); } for(int i=0; i<int(tmp1.size()); ++i) { if(tmp1.find(&res,i,"#")) { WY_THROW( WyRet() ); } }; } // find(size_t*,const WyCSeg&) { const WyStr tmp; size_t res; res=100; if(tmp.find(&res,"")==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } if(tmp.find(&res,"a")==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } const WyStr tmp1("rstuwywyyz"); res=100; if(tmp1.find(0,"wy")==false) { WY_THROW( WyRet() ); } if(tmp1.find(&res,"wy")==false) { WY_THROW( WyRet() ); } if(res!=4) { WY_THROW( WyRet() ); } } // rfind(size_t*,size_t,const char*,size_t) { const WyStr tmp; size_t res; res=100; CHK_DEFAULT(tmp); if(tmp.rfind(&res,0, WyCSeg("a",size_t(0)))==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } if(tmp.rfind(&res,0, WyCSeg("a",1))==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } const WyStr tmp1("rstuwywyyz"); res=100; if(tmp1.rfind(0,100, WyCSeg("wy",2))==false) { WY_THROW( WyRet() ); } if(tmp1.rfind(&res,100, WyCSeg("wy",2))==false) { WY_THROW( WyRet() ); } if(res!=6) { WY_THROW( WyRet() ); } for(int i=0; i<int(tmp1.size()); ++i) { if(tmp1.rfind(&res,i, WyCSeg("#",1))) { WY_THROW( WyRet() ); } }; } // rfind(size_t*,size_t,const char*) { const WyStr tmp; size_t res; res=100; if(tmp.rfind(&res,0,"")==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } if(tmp.rfind(&res,0,"a")==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } const WyStr tmp1("rstuwywyyz"); res=100; if(tmp1.rfind(0,100,"wy")==false) { WY_THROW( WyRet() ); } if(tmp1.rfind(&res,100,"wy")==false) { WY_THROW( WyRet() ); } if(res!=6) { WY_THROW( WyRet() ); } for(int i=0; i<int(tmp1.size()); ++i) { if(tmp1.rfind(&res,i, WyCSeg("#",1))) { WY_THROW( WyRet() ); } }; } // rfind(size_t*,const WyCSeg&) { const WyStr tmp; size_t res; res=100; if(tmp.rfind(&res,"")==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } if(tmp.rfind(&res,"a")==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } const WyStr tmp1("rstuwywyyz"); res=100; if(tmp1.rfind(0,"wy")==false) { WY_THROW( WyRet() ); } if(tmp1.rfind(&res,"wy")==false) { WY_THROW( WyRet() ); } if(res!=6) { WY_THROW( WyRet() ); } } // r/_find_not(size_t*,size_t,char) { WyStr tmp; size_t res; res=100; if(tmp.find_not(&res,0,'a')==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } if(tmp.rfind_not(&res,0,'a')==true) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } tmp="0X0X000\xaaGGGG"; if(tmp.find_not(&res,0,'0')==false) { WY_THROW( WyRet() ); } if(res!=1) { WY_THROW( WyRet() ); } if(tmp.find_not(&res,res+1,'0')==false) { WY_THROW( WyRet() ); } if(res!=3) { WY_THROW( WyRet() ); } if(tmp.find_not(&res,res+1,'0')==false) { WY_THROW( WyRet() ); } if(res!=7) { WY_THROW( WyRet() ); } res=100; if(tmp.rfind_not(&res,tmp.size()+1,'G')==false) { WY_THROW( WyRet() ); } if(res!=7) { WY_THROW( WyRet() ); } if(tmp.rfind_not(&res,res-1,'0')==false) { WY_THROW( WyRet() ); } if(res!=3) { WY_THROW( WyRet() ); } if(tmp.rfind_not(&res,res-1,'0')==false) { WY_THROW( WyRet() ); } if(res!=1) { WY_THROW( WyRet() ); } if(tmp.rfind_not(&res,res-1,'0')==true) { WY_THROW( WyRet() ); } if(res!=1) { WY_THROW( WyRet() ); } } // _find_not(size_t*,size_t,const WyCSeg) { WyStr tmp; size_t res; res=100; if(tmp._find_not(&res,0,WyCSeg())!=false) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } tmp+='a'; if(tmp._find_not(&res,0,WyCSeg())!=true) { WY_THROW( WyRet() ); } if(res!=0) { WY_THROW( WyRet() ); } tmp=" \n \r 123abc\xaa"; if(tmp._find_not(&res,0,WyCSeg(" \r\n"))!=true) { WY_THROW( WyRet() ); } if(res!=7) { WY_THROW( WyRet() ); } res=100; if(tmp._find_not(&res,7,WyCSeg(" \r\n"))!=true) { WY_THROW( WyRet() ); } if(res!=7) { WY_THROW( WyRet() ); } res=100; if(tmp._find_not(&res,0,WyCSeg(" \r\n123"))!=true) { WY_THROW( WyRet() ); } if(res!=10) { WY_THROW( WyRet() ); } res=100; if(tmp._find_not(&res,0,WyCSeg(" \r\n123abc"))!=true) { WY_THROW( WyRet() ); } if(res!=13) { WY_THROW( WyRet() ); } res=100; if(tmp._find_not(&res,0,tmp.cseg())!=false) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } } // _rfind_not(size_t*,size_t,const WyCSeg) { WyStr tmp; size_t res; res=100; if(tmp._rfind_not(&res,9,WyCSeg())!=false) { WY_THROW( WyRet() ); } if(res!=100) { WY_THROW( WyRet() ); } tmp+='a'; if(tmp._rfind_not(&res,9,WyCSeg())!=true) { WY_THROW( WyRet() ); } if(res!=0) { WY_THROW( WyRet() ); } tmp="123abc \n \r "; if(tmp._rfind_not(&res,99,WyCSeg(" \r\n"))!=true) { WY_THROW( WyRet() ); } if(res!=5) { WY_THROW( WyRet() ); } res=100; if(tmp._rfind_not(&res,5,WyCSeg(" \r\n"))!=true) { WY_THROW( WyRet() ); } if(res!=5) { WY_THROW( WyRet() ); } res=100; if(tmp._rfind_not(&res,99,WyCSeg(" \r\nabc"))!=true) { WY_THROW( WyRet() ); } if(res!=2) { WY_THROW( WyRet() ); } res=100; if(tmp._rfind_not(&res,99,tmp.cseg())!=false) { WY_THROW( WyRet() ); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -