2009-06-11 46 views
0

我有这样的毗连字符串在C++(STL)

string xml_path(conf("CONFIG")); 

xml_path+=FILE_NAME; 

其中, 的conf函数返回char *和文件名代码const char *

我想它像

结合一行
xml_path(conf("CONFIG")).append(FILE_NAME) 

我该怎么做?

有什么建议?

+2

大家都错过了一个事实,即您已经要求提供单线解决方案。 (但为什么你想这样?) – 2009-06-11 08:20:21

+0

假设我想concat 5个字符串,那么我可以做它.append()。append() 我不需要做5个步骤 它喜欢在java中做 StringBuffer obj = new StringBuffer的( “取得foobar”)附加( “富”)附加( “条”)。。 – anish 2009-06-17 05:33:50

回答

8

问题问一个行:

string xml_path = string(conf("CONFIG")) + string(FILE_NAME); 

(我假设xml_path是变量的名称,而不是某种呼叫在图书馆,我不知道)。

2
​​

请注意,您不能使用的append(-0,因为无论invvolved琴弦的是性病:;字符串如果你真的想追加,它将不得不为两个阶段:

string s (f); 
s.append(b); 
4

另外,如果要格式化不同类型的变量,使用ostringstream。

例如。

std::ostringstream oss; 
int a = 2; 
char *s = "sometext"; 
oss<<s<<a<<endl; 
cout<<oss.str(); // will output "sometext2" 
+0

+1非常有用!谢谢! – User1 2009-09-05 19:34:08