Вопрос:
У меня проблема. Мне нужно преобразовать тип строки в unicode.
Я знаю метод, например
string.c_str();
но он не работает в моем коде.
У меня есть функция
void modify(string infstring, string* poststring)
и в нем мне нужно отобразить infstring в памятке. Как
Form1->Memo1->Lines->Add(«some text «+infstring.c_str()+» some text»);
но компилятор говорит мне “E2085 Недопустимое добавление указателя”
Как я могу решить свою проблему?
Лучший ответ:Form1->Memo1->Lines->Add(«some text «+infstring.c_str()+» some text»);
должен быть
Form1->Memo1->Lines->Add((«some text «+infstring+» some text»).c_str());
то есть. вы добавляете строковые литералы к std::string, а затем используйте c_str(), чтобы получить от него const char*.
Это все еще не работает, если функция Add() принимает другой тип, но вы не указали достаточно информации, чтобы знать, о чем вы спрашиваете.
Ответ №1
используйте stringstream
#include <sstream> std::stringstream ss; ss << «some text» << mystring << «some text»; Form1->Memo1->Lines->Add(ss.str().c_str());