2012-10-02 173 views
0

假設我們有3個帶有自由文本的字符串,我需要將字符串合併爲一個字符串,然後才能單獨檢索3個字符串。將幾個字段合併爲一個字段

我知道這根本不乾淨,但有些情況下您無法更改界面。因此,我正在尋找一種「僞乾淨」解決方案。

我想2種選擇: - 選擇一個分隔符,逃避它的字符串,然後將它們連接起來,在中間的翹楚 - 以某種方式選擇字符串並將它們連接成字節編碼的分隔符和字節碼。

在此先感謝。

回答

3

通常,這是通過零分隔符完成的,因爲這絕不會出現在C字符串中。

所以:

string a, b, c = ...; 

ostringstream o; 
o << a << char(0) << b << char(0) << c; 
string s = o.str(); 

... 

auto i = s.find(char(0),0); 
a = s.substr(0,i); 
auto j = s.find(char(0),i+1); 
b = s.substr(i+1, j-i-1); 
c = s.substr(j+1); 
相關問題