2012-05-01 7 views
0

を2つの文字列を追加:は、このコードはコンパイルできません新しいLPSTRを作成するために一緒に

LPSTR a1 = "a1"; 
LPSTR lpResult = a1 + "a2"; 

は、どのように私は「A1A2」の文字列にlpResult長いポインタを得ることができますか?

+7

それは取得できbehooveう[良い入門C++帳](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-そしてリスト)。 –

+1

...文字配列文字列はそのようには機能しません。しかし 'std :: string'は行います。ここでは、合計文字列を格納するために新しいメモリを割り当て、次に両方の部分をコピーしてその作業を行う必要があります。また、「長いポインタ」の部分は歴史的なものです。Windowsではなく長いポインタを区別することはできません。 – Rup

+2

多くの言語では、そのような文字列を+演算子で連結することができますが、@RupのようにCではなく、 'std :: string'で行うことができます –

答えて

2

1つのオプションは、std :: string連結を使用することです。 MicrosoftのStringCchCat機能を使用することもできます。ここで

は例です:

#include <Strsafe.h> 

//... later in your code: 

LPSTR a1 = "a1"; 
LPSTR a2 = "a2"; 

TCHAR dest[ 5 ]; 
StringCchCopy(dest, 5, a1); // copy "a1" into the buffer 
StringCchCat(dest, 5, a2); // concatenate "a2" into the buffer 
関連する問題