Строка Concat в C ++ (STL) - PullRequest
       39

Строка Concat в C ++ (STL)

0 голосов
/ 11 июня 2009

У меня есть такой код

string xml_path(conf("CONFIG"));

xml_path+=FILE_NAME;

Где, функция conf возвращает char * и имя файла const char *

Я хочу объединить его в одну строку, как

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

как мне это сделать?

есть предложения ??

Ответы [ 4 ]

8 голосов
/ 11 июня 2009

Вопрос, заданный для одной строки:

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

(я полагаю, xml_path - это имя переменной, а не какой-то вызов в библиотеке, о которой я не знаю).

4 голосов
/ 11 июня 2009

В качестве альтернативы, если вы хотите отформатировать переменную другого типа, используйте ostringstream.

например.

std::ostringstream oss; 
int a = 2; 
char *s = "sometext"; 
oss<<s<<a<<endl; 
cout<<oss.str(); // will output "sometext2"
2 голосов
/ 11 июня 2009
const char * f = "foo";
char * b = "bar";

string s = string( f ) + b;

Обратите внимание, что вы не можете использовать append (-0, потому что ни одна из задействованных строк не является std:; string. Если вы действительно хотите добавить, это будет двухэтапный процесс:

string s ( f );
s.append( b );
0 голосов
/ 11 июня 2009
string xml_path(conf("CONFIG"));
xml_path += string(FILE_NAME);

должен сделать трюк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...