2009-06-11 36 views
0

私は のconf機能がchar *を返し、ファイル名が、私は、連結文字列

のように1行にそれを組み合わせたい const char *

あり、この

string xml_path(conf("CONFIG")); 

xml_path+=FILE_NAME; 

のようなコードを持っています

xml_path(conf("CONFIG")).append(FILE_NAME) 

どうすればよいですか?

どのような提案ですか?? invvolved文字列のどちらもSTDがあるので、あなたがAPPENDを使用することはできません

+2

皆さんは、1行の解決策を求めているという事実を忘れています。 (しかし、なぜそれが欲しいのですか?) –

+0

5つの文字列を連結したいと思ったら、私はそれを行うことができます。append()append() 5段階で行う必要はありません そのようなことはJavaでやっているようです StringBuffer obj = new StringBuffer( "foobar")。append( "foo")。append( "bar"); – anish

答えて

8

一行を求めた質問:

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

(私はxml_pathが変数の名前ではなく、私は知らない、ライブラリ内の呼び出しのいくつかの並べ替えであると仮定)。

+0

+1。 stackoverflowの最大の答え。 – Farah

2
​​

注(-0:;。:

string s (f); 
s.append(b); 
あなたが本当に追加したい場合は、文字列は、二段階のプロセスである必要があります
0

は、トリックを行う必要があります。

4

を別の方法として、あなたは、異なる型の変数をフォーマットしたいostringstreamを使用している場合。

例えば。

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

+1非常に便利です!ありがとう! – User1