2016-04-09 9 views
-1

私は非常に簡単な質問があります。 C++で複数の文字を連結するにはどうすればよいですか?たとえば、次のような表現を有効にしたいと考えています。複数の連結文字(C++)

Call_Fu​​nction( 'a' + 'b' + 'c' + 'd'); 期待される結果: "abcd";

Call_Fu​​nction( "a" + 'b' + "c"); 期待される結果: "abc";

ありがとうございます。文字列リテラルの連結のために

+0

それは必要で短縮することができます予想される結果がconst char *だけでなくstd :: stringでもあると言われます。反対側では、呼び出された関数の表現はまったく同じように書かれると予想され、すなわちキャストは許されない。 C++で可能ですか? –

+0

リテラルcharか、変数から来ていますか? – Jarod42

+0

両方の組み合わせが可能です。たとえば、次のようにすることができます。char x; Call_Fu​​nction( "a" + x + "b");またはCall_Fu​​nction( 'a' + x + 'b'); –

答えて

0

、あなたはプリプロセッサは、ジョブ"hello world"

"hello" " world"結果をやらせることがあります。変数と

は、単純なC++ 14ではstd::string("Hello world")

につながるstd::string

std::string s; 

s + "Hello" + ' ' + "world"operator +を使用することで、それが

using namespace std::string_literals; // for operator ""s 
"Hello"s + ' ' + world 
+0

はい、そうですが、演算子+をオーバーロードしたり、他の構造を作成して、引数の式を例のように正確に書くことができますか? –

+0

'char + char'や' char * + int'はすでに意味を持っているので、まったく意味がありません。 C++ 14では 'std :: string'を作成するためのショートカットを紹介しています。 – Jarod42

+0

ありがとう!あなたはオペレータ ""を参照していますか、まったく新しいC++ 14のショートカットが何を意味していますか? –

関連する問題