Преобразование std::string в строку Unicode в С++

Вопрос:У меня проблема. Мне нужно преобразовать тип строки в unicode. Я знаю метод, например string.c_str(); но он не работает в моем коде. У меня есть функция void modify(string infstring, string* poststring) и в нем мне нужно отобразить infstring в памятке. Как Form1->Memo1->Lines->Add("some text "+infstring.c_str()+" some text"); но компилятор говорит мне "E2085 Недопустимое добавление указателя" Как

Вопрос:

У меня проблема. Мне нужно преобразовать тип строки в 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());

Оцените статью
Добавить комментарий