1. 程式人生 > >char * 和string互轉,陷阱:char*中包含較多的'\0'

char * 和string互轉,陷阱:char*中包含較多的'\0'

一般來說,char *和string能夠比較容易的進行相互轉換,
比如char *轉換成string,可以直接轉,如下:


-Cpp 程式碼
1
char *a = "abcdefg";
2
std::string b = a;


相對的,string轉char *也是比較容易的,如下:




-Cpp 程式碼
檢視程式碼
1
std::string s = "abcdefg";
2
s.c_str();


但在用的過程中,碰到過一個問題,利用char *讀一個二進位制檔案,因為檔案中不全是明文字元,可能有各種各樣的字元,導致,有較多的‘\0',那麼char *轉string的時候,就少了部分位元組。


解決:一個位元組一個位元組轉。