亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

c++之解決char轉string時出現的亂碼問題

 更新時間:2023年08月01日 10:26:44   作者:u010905359  
這篇文章主要介紹了c++之解決char轉string時出現的亂碼問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

c++ char轉string時出現的亂碼問題

刷題遇到的問題。大致是這樣,需要將一個字符串提取中間一部分,然后轉為整形,通過整形轉化為字符型,最后返回一個字符串。

若是用

char c ;
string s = &c;

則會出現亂碼,內容為字符串s加上亂碼。

最后發(fā)現原因是:char沒有’\0’作為字符串的邊界,當輸出string時,string可以看成是數組,因為string接受一個地址,那必然是首地址,但string長度并非是1,所以后面的空間并未初始化,則會出現亂碼。

string本身就是一個數據結構。

可以通過at來獲取內容,即s.at[0].

告知:

當我們用

char c ;
string s = &c;
cout<<s.length();`

結果是16

char c ;
string s;
s = &c;
cout<<s.length();

結果會是12

可以思考下原因。

另一種做法是嘗試用char*或char[]來保存變量,此時用string接收不會出現亂碼。

另補充冷知識:sizeof(string) = 28;

c++ string 轉 char * 出現亂碼 內存共用問題

系統(tǒng):unbuntu16.04 IDE:vscode

出現亂碼

std::string str = "Hello Word";
char* p1 = str.c_str();  //出現亂碼
char* p2 = str.data();  //出現亂碼

出現內存共用

后面的字符串會覆蓋之前的:

char * s1 =  (char *)data.getWorkNum().c_str();  //string是 s1:1
std::cout<<s1<<std::endl;
char * s2 =  (char *)data.getName().c_str();   //string是 s2:11
std::cout<<s2<<std::endl;
char * s3 = (char *)data.getDepartment().c_str();  //string是 s3:111
std::cout<<s3<<std::endl;
char * s4 = (char *)data.getRoom().c_str();       //string是 s4:1111
std::cout<<s4<<std::endl;
std::cout<<s1<<std::endl;
std::cout<<s2<<std::endl;
std::cout<<s3<<std::endl;
std::cout<<s4<<std::endl;

打?。?/p>

s1:1
s2:11
s3:111
s4:1111
s4:1111   //出現后者覆蓋前面所有
s4:1111   //出現后者覆蓋前面所有
s4:1111   //出現后者覆蓋前面所有
s4:1111   //出現后者覆蓋前面所有

解決方法

(1):

char * strc = new char[strlen(str.c_str())+1];
strcpy(strc, str.c_str());

(2):

    char c_workNum[data.getWorkNum().length()];  //其中data.getWorkNum()為字符串
    strcpy(c_workNum,data.getWorkNum().c_str()); 

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C++中template方法undefined reference to的問題解決

    C++中template方法undefined reference to的問題解決

    Undefined reference to 錯誤:這類錯誤是在連接過程中出現的,本文就來介紹一下C++中template方法undefined reference to的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • C++11中的stoi & stod用法

    C++11中的stoi & stod用法

    這篇文章主要介紹了C++11中的stoi & stod用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 深入理解C/C++混合編程

    深入理解C/C++混合編程

    本篇文章是對C/C++混合編程進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++變量,常量,數組和字符串詳解

    C++變量,常量,數組和字符串詳解

    這篇文章主要介紹了C++變量,常量,數組和字符串,是C++入門學習中的基礎知識,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • C++子類父類成員函數的覆蓋和隱藏實例詳解

    C++子類父類成員函數的覆蓋和隱藏實例詳解

    這篇文章主要介紹了C++子類父類成員函數的覆蓋和隱藏實例詳解的相關資料,需要的朋友可以參考下
    2017-06-06
  • C++?使用getline()從文件中讀取一行字符串方法示例

    C++?使用getline()從文件中讀取一行字符串方法示例

    這篇文章主要介紹了C++?使用getline()從文件中讀取一行字符串方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • C++14中binary literals的使用詳解

    C++14中binary literals的使用詳解

    這篇文章主要介紹了C++14中binary literals的使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 詳解C語言之文件操作下)

    詳解C語言之文件操作下)

    這篇文章主要介紹了關于C語言文件操作方法的相關資料,小編覺得這篇文章寫的還不錯,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-11-11
  • 關于C++中構造函數初始化成員列表的總結

    關于C++中構造函數初始化成員列表的總結

    下面小編就為大家?guī)硪黄P于C++中構造函數初始化成員列表的總結。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 淺析C語言中的數組及字符數組

    淺析C語言中的數組及字符數組

    這篇文章主要介紹了C語言中的數組及字符數組,是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11

最新評論