C++中string类的length()与size()方法和C语言的strlen()函数有什么区别?
生活随笔
收集整理的這篇文章主要介紹了
C++中string类的length()与size()方法和C语言的strlen()函数有什么区别?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
直接上代碼段:
char buf[256]={0}; buf[0]='a'; buf[2]='v'; buf[3]='h';string strTest(buf,6); cout<<"strTest[0]:"<<(uint32_t)strTest[0]<<"_"<<(uint32_t)strTest[1]<<"_"<<(uint32_t)strTest[2]<<"_"<<(uint32_t)strTest[3]<<"_"<<(uint32_t)strTest[4]<<"_"<<(uint32_t)strTest[5]<<endl; cout<<"strTest.length():"<<strTest.length()<<" strTest.size():"<<strTest.size()<<endl; cout<<"strlen(strTest.c_str()):"<<strlen(strTest.c_str())<<endl; cout<<"strTest:"<<strTest<<endl;輸出如下:
strTest[0]:97_0_118_104_0_0 strTest.length():6 strTest.size():6 strlen(strTest.c_str()): strlen(strTest.c_str()):1 strTest:avh結(jié)論:
結(jié)論:?
(1)當(dāng)string中含有空字符’\0’,使用strlen()獲取string的長度時會被截斷,使用成員函數(shù)length()和size()可以返回string的真實(shí)長度。?
(2)cout對string輸出時,會過濾掉空字符,輸出不會被截斷。?
(3)在構(gòu)造或者拼接string時,建議同時指定string的長度,比如:
以上內(nèi)容參考:鏈接
對于.length()和.size(),其實(shí)是沒有區(qū)別的,是因?yàn)槿萜鞫己?size()方法,但是對于string類來說,.length()更加直觀,所以新加了這個函數(shù),但是其實(shí)他倆相當(dāng)于是同義詞。
總結(jié)
以上是生活随笔為你收集整理的C++中string类的length()与size()方法和C语言的strlen()函数有什么区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【HDU - 5889】Barricad
- 下一篇: 《三国群英传8》武将技能、官职及饰品CE