2009-06-11 76 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