将几个Fields合并为一个

时间:2012-10-02 08:41:04

标签: c++ string merge

假设我们有3个带有自由文本的字符串,我需要将字符串合并为一个字符串,然后才能单独检索3个字符串。

我知道这根本不干净,但在某些情况下你无法改变界面。因此,我正在寻找一种“伪清洁”解决方案。

我在考虑两个选择: - 选择一个分隔符,将其转义为字符串,然后将它们与中间的sep连接起来。 - 以某种方式选择分隔符和字节码字符串并将它们连接成字节码。

提前致谢。

1 个答案:

答案 0 :(得分: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);