3

私は問題があります。文字列型をUnicodeに変換する必要があります。私はメトッドのようなものを知っています

string.c_str();

しかし、それは私のコードでは機能しません。

機能があります

void modify(string infstring, string* poststring)

その中で、メモにinfstringを表示する必要があります。のような

Form1->Memo1->Lines->Add("some text "+infstring.c_str()+" some text");

しかし、コンパイラは「E2085無効なポインタの追加」と言っています

どうすれば問題を解決できますか?

4

2 に答える 2

5
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()機能しませんが、あなたはあなたが何を求めているのかを知るのに十分な情報を与えていません。

于 2013-02-20T11:20:25.037 に答える
2

文字列ストリームを使用する

#include <sstream>
std::stringstream ss;
ss << "some text" << mystring << "some text";
Form1->Memo1->Lines->Add(ss.str().c_str());
于 2013-02-20T11:03:08.320 に答える