C++中string轉(zhuǎn)換為char*類型返回后亂碼怎么辦-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,先為樂陵等服務(wù)建站,樂陵等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為樂陵企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

這篇文章主要介紹C++中string轉(zhuǎn)換為char*類型返回后亂碼怎么辦,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

問題來源:

在寫二叉樹序列化與反序列化時(shí)發(fā)現(xiàn)序列化函數(shù)為char* Serialize1(TreeNode *root)  其函數(shù)返回類型為char*,但是我在實(shí)現(xiàn)的過程中為了更方便的操作添加字符串使用的是C++中string類型的變量,這就導(dǎo)致我最后得到的結(jié)果res是string類型,若是要返回需要轉(zhuǎn)化為char *類型。而等我將string類型轉(zhuǎn)為char*后返回在主函數(shù)中就成了亂碼。

先直接說最后的解決辦法:

第一種:定義一個(gè)char數(shù)組,數(shù)組長(zhǎng)度為stringlength+1,將string的內(nèi)容依次賦值給char數(shù)組,最后加上'\0' ,然后返回char數(shù)組名就行了。

第二種:將string定義為類的成員變量

就貼第一種方法的代碼

char *result = new char[res.length() + 1];  //定義需要返回的result對(duì)象
for (int i = 0; i < res.length(); ++i)
{
   result[i] = res[i];    //將string類型的res內(nèi)容都放到result內(nèi)
}
result[res.length()] = '\0';  //加上結(jié)束符\0

本文題目:C++中string轉(zhuǎn)換為char*類型返回后亂碼怎么辦-創(chuàng)新互聯(lián)
瀏覽地址:http://muchs.cn/article6/cdgjog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、品牌網(wǎng)站建設(shè)、商城網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、定制網(wǎng)站、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司