📄 ck_str.cpp
字号:
if(tmp1!="1") { WY_THROW(WyRet() ); } if((r=tmp1.erase(0))!=Ok) { WY_THROW(r); } if(tmp1!="") { WY_THROW(WyRet() ); } CHK_DEFAULT(tmp1); } // erase(size_t,size_t) { WyStr tmp; CHK_DEFAULT(tmp); if((r=tmp.erase(0,0))!=Ok) { WY_THROW(r); } if((r=tmp.erase(0,1))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); WyStr tmp0("1234567"); WyStr tmp1(tmp0); if((r=tmp1.erase(tmp1.size(),1))!=Ok) { WY_THROW(r); } if(tmp0!=tmp1) { WY_THROW(WyRet() ); } if((r=tmp1.erase(3,1))!=Ok) { WY_THROW(r); } if(tmp1!="123567") { WY_THROW(WyRet() ); } if((r=tmp1.erase(5,1))!=Ok) { WY_THROW(r); } if(tmp1!="12356") { WY_THROW(WyRet() ); } if((r=tmp1.erase(0,3))!=Ok) { WY_THROW(r); } if(tmp1!="56") { WY_THROW(WyRet() ); } if((r=tmp1.erase(0,10))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp1); } // resize { WyStr tmp; if((r=tmp.resize(0))!=Ok) { WY_THROW(WyRet() ); } CHK_DEFAULT(tmp); if((r=tmp.resize(7))!=Ok) { WY_THROW(WyRet() ); } { const char ca[8]={char(),char(),char(),char(),char(),char(),char(),0}; if(tmp.size()!=7) { WY_THROW(WyRet() ); } if((std::memcmp(tmp.data(),ca,sizeof(ca)))!=0) { WY_THROW(WyRet() ); } } if((r=tmp.resize(2,'c'))!=Ok) { WY_THROW(WyRet() ); } if(tmp.size()!=2) { WY_THROW(WyRet() ); } if((tmp[0]!=char())||(tmp[1]!=char())||(tmp[2]!=0)) { WY_THROW(WyRet() ); } if((r=tmp.resize(3,'c'))!=Ok) { WY_THROW(WyRet() ); } if(tmp.size()!=3) { WY_THROW(WyRet() ); } if(tmp[2]!='c') { WY_THROW(WyRet() ); } r=tmp.resize(tmp._capacity()+2000); if(r!=Ok) { WY_THROW(r); } while(tmp.size()) { r=tmp.resize(tmp.size()-1); if(r!=Ok) { // shrink by resize never cause error WY_THROW(r); } } CHK_DEFAULT(tmp); if(tmp!="") { WY_THROW( WyRet() ); } } // replace(size_t,size_t,const WyStr&) { WyStr tmp; if((r=tmp.replace(0,4,WyStr()))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); if((r=tmp.replace(0,4,WyStr("abc")))!=Ok) { WY_THROW(r); } if(tmp!="abc") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,1,WyStr("")))!=Ok) { WY_THROW(r); } if(tmp!="ac") { WY_THROW(WyRet() ); } if((r=tmp.replace(2,2,WyStr("")))!=Ok) { WY_THROW(r); } if(tmp!="ac") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,0,WyStr("x")))!=Ok) { WY_THROW(r); } if(tmp!="axc") { WY_THROW(WyRet() ); } if((r=tmp.replace(0,3,WyStr("")))!=Ok) { WY_THROW(r); } if(tmp!="") { WY_THROW(WyRet() ); } // AUX: operator + (char,const WyStr&) { const WyStr Tmp("gh"); if((Tmp+'f')!="ghf") { WY_THROW(WyRet() ); } if(('f'+Tmp)!="fgh") { WY_THROW(WyRet() ); } }/* self-operate { WyStr a("abcde"); if((r=a.replace(2,1,a))!=Ok) { WY_THROW(r); } if(a!="ababcdede") { WY_THROW(WyRet() ); } }*/ const WyStr Temp("1234567"); tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } if((r=tmp.replace(1,2,WyStr("ab")))!=Ok) { WY_THROW(r); } if(tmp!="1ab4567") { WY_THROW(WyRet() ); } if((r=tmp.replace(5,3,WyStr("xy")))!=Ok) { WY_THROW(r); } if(tmp!="1ab45xy") { WY_THROW(WyRet() ); } { size_t bufsiz; tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } bufsiz=tmp._capacity(); WyStr rstr(size_t(bufsiz+1),char('x')); if((r=tmp.replace(3,1, WyCSeg(rstr.data(),rstr.size())))!=Ok) { WY_THROW(r); } if(tmp.size()!=rstr.size()+6) { WY_THROW(WyRet() ); } if((tmp[0]!='1')||(tmp[1]!='2')||(tmp[2]!='3')) { WY_THROW(WyRet() ); } size_t t2=tmp.size()-3; for(size_t i=3; i<t2; ++i) { if(tmp[i]!='x') { WY_THROW(WyRet() ); } } if((tmp[t2+0]!='5')||(tmp[t2+1]!='6')||(tmp[t2+2]!='7')) { WY_THROW(WyRet() ); } } { size_t bufsiz; tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } bufsiz=tmp._capacity(); WyStr rstr(size_t(bufsiz+1),char('x')); if((r=tmp.replace(3,100,rstr))!=Ok) { WY_THROW(r); } if(tmp.size()!=rstr.size()+3) { WY_THROW(WyRet() ); } if((tmp[0]!='1')||(tmp[1]!='2')||(tmp[2]!='3')) { WY_THROW(WyRet() ); } for(size_t i=3; i<tmp.size(); ++i) { if(tmp[i]!='x') { WY_THROW(WyRet() ); } } if(tmp[tmp.size()]!=0) { WY_THROW(WyRet() ); } } } // replace(size_t,size_t,const WyStr&,size_t) { WyStr tmp; const WyStr S_empty; if((r=tmp.replace(0,4,S_empty.cseg(0)))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); const WyStr S_labc("labc"); if((r=tmp.replace(0,4,S_labc.cseg(1)))!=Ok) { WY_THROW(r); } if(tmp!="abc") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,1,S_empty.cseg(0)))!=Ok) { WY_THROW(r); } if(tmp!="ac") { WY_THROW(WyRet() ); } if((r=tmp.replace(2,2,S_empty.cseg(0,0)))!=Ok) { WY_THROW(r); } if(tmp!="ac") { WY_THROW(WyRet() ); } WyStr S_x("x"); if((r=tmp.replace(1,0,S_x.cseg(0)))!=Ok) { WY_THROW(r); } if(tmp!="axc") { WY_THROW(WyRet() ); } if((r=tmp.replace(0,3,S_empty.cseg(0)))!=Ok) { WY_THROW(r); } if(tmp!="") { WY_THROW(WyRet() ); }/* self-operate { WyStr a("abcde"); if((r=a.replace(2,1,a,0))!=Ok) { WY_THROW(r); } if(a!="ababcdede") { WY_THROW(WyRet() ); } }*/ const WyStr Temp("1234567"); tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } WyStr S_xab("xab"); WyStr S_xy("xy"); if((r=tmp.replace(1,2,S_xab.cseg(1)))!=Ok) { WY_THROW(r); } if(tmp!="1ab4567") { WY_THROW(WyRet() ); } if((r=tmp.replace(5,3,S_xy.cseg(0)))!=Ok) { WY_THROW(r); } if(tmp!="1ab45xy") { WY_THROW(WyRet() ); } } // replace(size_t,size_t,const WyStr&,size_t,size_t) { WyStr tmp; const WyStr S_empty, S_labcd("labcd"), S_xx("xx"), S_x("x"); if((r=tmp.replace(0,4,S_empty.cseg(0,0)))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); if((r=tmp.replace(0,4,S_labcd.cseg(1,3)))!=Ok) { WY_THROW(r); } if(tmp!="abc") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,1,S_xx.cseg(1,0)))!=Ok) { WY_THROW(r); } if(tmp!="ac") { WY_THROW(WyRet() ); } if((r=tmp.replace(2,2,S_empty.cseg(0,0)))!=Ok) { WY_THROW(r); } if(tmp!="ac") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,0,S_x.cseg(0,2)))!=Ok) { WY_THROW(r); } if(tmp!="axc") { WY_THROW(WyRet() ); } if((r=tmp.replace(0,3,S_empty.cseg(0,1)))!=Ok) { WY_THROW(r); } if(tmp!="") { WY_THROW(WyRet() ); }/* self-operate { WyStr a("abcde"); if((r=a.replace(2,1,a,0,a.size()))!=Ok) { WY_THROW(r); } if(a!="ababcdede") { WY_THROW(WyRet() ); } }*/ const WyStr Temp("1234567"); tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } WyStr S_xabx("xabx"),S_xy("xy"); if((r=tmp.replace(1,2,S_xabx.cseg(1,2)))!=Ok) { WY_THROW(r); } if(tmp!="1ab4567") { WY_THROW(WyRet() ); } if((r=tmp.replace(5,3,S_xy.cseg(0,2)))!=Ok) { WY_THROW(r); } if(tmp!="1ab45xy") { WY_THROW(WyRet() ); } { size_t bufsiz; tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } bufsiz=tmp._capacity(); WyStr rstr(size_t(bufsiz+1),char('x')); if((r=tmp.replace(3,1,rstr.cseg(0,rstr.size())))!=Ok) { WY_THROW(r); } if(tmp.size()!=rstr.size()+6) { WY_THROW(WyRet() ); } if((tmp[0]!='1')||(tmp[1]!='2')||(tmp[2]!='3')) { WY_THROW(WyRet() ); } size_t t2=tmp.size()-3; for(size_t i=3; i<t2; ++i) { if(tmp[i]!='x') { WY_THROW(WyRet() ); } } if((tmp[t2+0]!='5')||(tmp[t2+1]!='6')||(tmp[t2+2]!='7')) { WY_THROW(WyRet() ); } } { size_t bufsiz; tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } bufsiz=tmp._capacity(); WyStr rstr(size_t(bufsiz+1),char('x')); if((r=tmp.replace(3,100,rstr.cseg(0,rstr.size())))!=Ok) { WY_THROW(r); } if(tmp.size()!=rstr.size()+3) { WY_THROW(WyRet() ); } if((tmp[0]!='1')||(tmp[1]!='2')||(tmp[2]!='3')) { WY_THROW(WyRet() ); } for(size_t i=3; i<tmp.size(); ++i) { if(tmp[i]!='x') { WY_THROW(WyRet() ); } } if(tmp[tmp.size()]!=0) { WY_THROW(WyRet() ); } } } // replace(size_t,size_t,const char*,size_t) { WyStr tmp; if((r=tmp.replace(0,4, WyCSeg("a",size_t(0))))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); if((r=tmp.replace(0,4, WyCSeg("abc",3)))!=Ok) { WY_THROW(r); } if(tmp!="abc") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,1, WyCSeg("",size_t(0))))!=Ok) { WY_THROW(r); } if(tmp!="ac") { WY_THROW(WyRet() ); } if((r=tmp.replace(2,2, WyCSeg("x",size_t(0))))!=Ok) { WY_THROW(r); } if(tmp!="ac") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,0, WyCSeg("x",size_t(1))))!=Ok) { WY_THROW(r); } if(tmp!="axc") { WY_THROW(WyRet() ); } if((r=tmp.replace(0,3, WyCSeg("x",size_t(0))))!=Ok) { WY_THROW(r); } if(tmp!="") { WY_THROW(WyRet() ); }/* self-operate { WyStr a("abcde"); if((r=a.replace(2,1, WyCSeg(a.data(),a.size())))!=Ok) { WY_THROW(r); } if(a!="ababcdede") { WY_THROW(WyRet() ); } }*/ const WyStr Temp("1234567"); tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } if((r=tmp.replace(1,2, WyCSeg("ab",2)))!=Ok) { WY_THROW(r); } if(tmp!="1ab4567") { WY_THROW(WyRet() ); } if((r=tmp.replace(5,3, WyCSeg("xy",2)))!=Ok) { WY_THROW(r); } if(tmp!="1ab45xy") { WY_THROW(WyRet() ); } { size_t bufsiz; tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } bufsiz=tmp._capacity(); WyStr rstr(size_t(bufsiz+1),char('x')); if((r=tmp.replace(3,1, WyCSeg(rstr.data(),rstr.size())))!=Ok) { WY_THROW(r); } if(tmp.size()!=rstr.size()+6) { WY_THROW(WyRet() ); } if((tmp[0]!='1')||(tmp[1]!='2')||(tmp[2]!='3')) { WY_THROW(WyRet() ); } size_t t2=tmp.size()-3; for(size_t i=3; i<t2; ++i) { if(tmp[i]!='x') { WY_THROW(WyRet() ); } } if((tmp[t2+0]!='5')||(tmp[t2+1]!='6')||(tmp[t2+2]!='7')) { WY_THROW(WyRet() ); } } { size_t bufsiz; tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } bufsiz=tmp._capacity(); WyStr rstr(size_t(bufsiz+1),char('x')); if((r=tmp.replace(3,100, WyCSeg(rstr.data(),rstr.size())))!=Ok) { WY_THROW(r); } if(tmp.size()!=rstr.size()+3) { WY_THROW(WyRet() ); } if((tmp[0]!='1')||(tmp[1]!='2')||(tmp[2]!='3')) { WY_THROW(WyRet() ); } for(size_t i=3; i<tmp.size(); ++i) { if(tmp[i]!='x') { WY_THROW(WyRet() ); } } if(tmp[tmp.size()]!=0) { WY_THROW(WyRet() ); } } } // replace(size_t,size_t,const char*) { WyStr tmp; CHK_DEFAULT(tmp); if((r=tmp.replace(0,4,"abc"))!=Ok) { WY_THROW(r); } if(tmp!="abc") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,0,"x"))!=Ok) { WY_THROW(r); } if(tmp!="axbc") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,1,"x"))!=Ok) { WY_THROW(r); } if(tmp!="axbc") { WY_THROW(WyRet() ); } if((r=tmp.replace(0,3,""))!=Ok) { WY_THROW(r); } if(tmp!="c") { WY_THROW(WyRet() ); }/* self-operate { WyStr a("abcde"); if((r=a.replace(2,1,a.c_str()))!=Ok) { WY_THROW(r); } if(a!="ababcdede") { WY_THROW(WyRet() ); } }*/ const WyStr Temp("1234567"); tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } if((r=tmp.replace(1,2,"ab"))!=Ok) { WY_THROW(r); } if(tmp!="1ab4567") { WY_THROW(WyRet() ); } if((r=tmp.replace(5,3,"xy"))!=Ok) { WY_THROW(r); } if(tmp!="1ab45xy") { WY_THROW(WyRet() ); } } // replace(size_t,size_t,size_t,ch) { WyStr tmp; if((r=tmp.replace(0,4,0,'x'))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); if((r=tmp.replace(0,4,3,'a'))!=Ok) { WY_THROW(r); } if(tmp!="aaa") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,1,0,'b'))!=Ok) { WY_THROW(r); } if(tmp!="aa") { WY_THROW(WyRet() ); } if((r=tmp.replace(2,2,0,'x'))!=Ok) { WY_THROW(r); } if(tmp!="aa") { WY_THROW(WyRet() ); } if((r=tmp.replace(1,0,1,'x'))!=Ok) { WY_THROW(r); } if(tmp!="axa") { WY_THROW(WyRet() ); } if((r=tmp.replace(0,3,0,'t'))!=Ok) { WY_THROW(r); } if(tmp!="") { WY_THROW(WyRet() ); } const WyStr Temp("1234567"); tmp.reset(Temp); if(tmp!=Temp) { WY_THROW(WyRet() ); } if((r=tmp.replace(1,2,2,'b'))!=Ok) { WY_THROW(r); } if(tmp!="1bb4567") { WY_THROW(WyRet() ); } if((r=tmp.replace(5,3,2,'y'))!=Ok) { WY_THROW(r); } if(tmp!="1bb45yy") { WY_THROW(WyRet() ); } } // copyto(char*,size_t,size_t&,size_t) { WyStr tmp; char buf[8]; size_t res; buf[0]='x'; if((r=tmp.copyto(&res,buf,sizeof(buf),0))!=Ok) { WY_THROW(r); } if(res!=0) { WY_THROW(WyRet() ); } if(buf[0]!='x') { WY_THROW(WyRet() ); } WyStr tmp2("abcde"); buf[0]='x'; if((r=tmp2.copyto(&res,buf,sizeof(buf),3))!=Ok) { WY_THROW(r); } if(res!=2) { WY_THROW(WyRet() ); } if((buf[0]!='d')||(buf[1]!='e')) { WY_THROW(WyRet() ); } if((r=tmp2.copyto(0,buf,1,1))!=Ok) { WY_THROW(r); } if(buf[0]!='b') { WY_THROW(WyRet() ); } } // _reserve
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -