日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c 串转string_c++ 中 char 与 string 之间的相互转换问题

發(fā)布時間:2025/4/5 c/c++ 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c 串转string_c++ 中 char 与 string 之间的相互转换问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

string::c_str()、string::data()的區(qū)別:

const value_type *c_str( ) const;

const value_type *data( ) const;

data只是返回原始數(shù)據(jù)序列,沒有保證會用traits::eos(),或者說'\0'來作字符串結(jié)束. ??當(dāng)然,可能多數(shù)實(shí)現(xiàn)都這樣做了。

c_str是標(biāo)準(zhǔn)的做法,返回的char*???一定指向一個合法的用'\0'終止的C兼容的字符串。

所以,如果需要C兼容的字符串,c_str ?是標(biāo)準(zhǔn)的做法,data ?并不保證所有STL的實(shí)現(xiàn)的一致性。

你或許會問,c_str()的功能包含data(),那還需要data()函數(shù)干什么?看看源碼:

const charT* c_str () const

{

if??(length () == 0)

return "";

terminate ();

return data ();

}

原來c_str()的流程是:先調(diào)用terminate(),然后在返回data()。因此如果你對效率要求比較高,而且你的處理又不一定需要以\0的方式結(jié)束,你最好選擇data()。但是對于一般的C函數(shù)中,需要以const char*為輸入?yún)?shù),你就要使用c_str()函數(shù)。

對于c_str() data()函數(shù),返回的數(shù)組都是由string本身擁有,千萬不可修改其內(nèi)容。其原因是許多string實(shí)現(xiàn)的時候采用了引用機(jī)制,也就是說,有可能幾個string使用同一個字符存儲空間。而且你不能使用sizeof(string)來查看其大小。詳細(xì)的解釋和實(shí)現(xiàn)查看Effective STL的條款15:小心string實(shí)現(xiàn)的多樣性。

另外在你的程序中,只在需要時才使用c_str()或者data()得到字符串,每調(diào)用一次,下次再使用就會失效,如:

string strinfo("this is Winter");

...

//最好的方式是:

foo(strinfo.c_str());

//也可以這么用:

const char* pstr=strinfo.c_str();

foo(pstr);

//不要再使用了pstr了, 下面的操作已經(jīng)使pstr無效了。

strinfo += " Hello!";

foo(pstr);//錯誤!

會遇到什么錯誤?當(dāng)你幸運(yùn)的時候pstr可能只是指向"this is Winter Hello!"的字符串,如果不幸運(yùn),就會導(dǎo)致程序出現(xiàn)其他問題,總會有一些不可遇見的錯誤。總之不會是你預(yù)期的那個結(jié)果。

strcpy

C語言標(biāo)準(zhǔn)庫函數(shù)strcpy,把從src地址開始且含有'\0'結(jié)束符的字符串復(fù)制到 ?以dest開始的地址空間。

總結(jié)

以上是生活随笔為你收集整理的c 串转string_c++ 中 char 与 string 之间的相互转换问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久亚洲精品小早川怜子 | 日韩欧美视频免费在线观看 | 美景之屋电影免费高清完整韩剧 | 久久视频热 | 影音先锋男人天堂 | 久久免费高清视频 | 欧美黑人一区二区 | 亚洲AV无码成人精品一区 | 精品久久久久国产 | 在线观看免费小视频 | 男人的天堂狠狠干 | 免费观看成人毛片 | 欧美日韩一区二区三区电影 | 国产午夜三级一区二区三 | 欧美人在线 | 精品人妻一区二区三区四区在线 | 国产精品夜夜爽张柏芝 | jzjzz成人免费视频 | 日本成人在线不卡 | 95在线视频 | 国产精品白丝喷水在线观看 | 视色视频在线观看 | 乱人伦xxxx国语对白 | 99r精品视频| 亚洲AV成人无码精品久久盆瓶 | 久久午夜精品人妻一区二区三区 | 无码人妻丰满熟妇区bbbbxxxx | 天堂精品在线 | v天堂中文在线 | 99视频在线精品 | 亚洲AV无码成人精品区麻豆 | 黄色一级生活片 | 成人宗合 | 欧美vieox另类极品 | 久久综合88| 天堂中文字幕免费一区 | 国产男同gay网站 | 91久久综合精品国产丝袜蜜芽 | 中文字幕日日 | aⅴ在线免费观看 | 久久99精品久久久久久 | 少妇精品一区二区 | 黄色一级免费片 | 日本黄大片在线观看 | 精品久久影视 | 一区二区啪啪 | 深夜毛片 | 成人免费毛片免费 | 日韩在线观看视频一区二区 | 娇妻高潮浓精白浆xxⅹ | 精品乱码一区二区三区四区 | 男生插女生视频 | 精品亚洲一区二区三区四区五区 | 国精品一区二区 | av免费网址在线观看 | 91看视频| 国产综合久久久久久鬼色 | 91视频观看| 重口味av | 国产在线小视频 | 91porny丨首页入口在线 | 免费黄色三级网站 | 国产成人+综合亚洲+天堂 | 国产精品815.cc红桃 | 牛牛澡牛牛爽一区二区 | 欧美极品在线观看 | 亚洲国产欧美视频 | 国产牛牛 | 影音av在线 | 在线观看日本一区 | 婷婷久久网 | 黄色免费在线观看视频 | 国产成人无码精品久久久久 | 欧美中文在线观看 | 秋霞影院午夜老牛影院 | 91网站免费在线观看 | 浮力影院草草 | 欧美妞干网 | 久草视频在线资源站 | 国产99久久久国产精品免费看 | 麻豆福利在线 | 国产日韩一区二区三区 | 91蜜臀精品国产自偷在线 | 久久五月网 | 欧美色图30p| 欧美性猛交xxxx久久久 | 欧美性受xxxx | 麻豆国产在线视频 | 不卡的在线视频 | 色丁香六月 | 免费爱爱网站 | 日韩美女一级片 | 亚洲激情第一页 | 天天综合网在线观看 | 亚洲AV无码一区二区伊人久久 | 91精东传媒理伦片在线观看 | 97人妻一区二区精品免费视频 | 国产三级视频在线 | 尤物视频在线观看视频 |