2012-10-02 111 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); 
相关问题