文字列の連結が期待どおりに動作しない [closed] 質問する

文字列の連結が期待どおりに動作しない [closed] 質問する

これはよくある問題だとはわかっていますが、参考資料やその他の資料を探しても、この質問に対する明確な答えは見つかりません。

次のコードを考えてみましょう。

#include <string>

// ...
// in a method
std::string a = "Hello ";
std::string b = "World";
std::string c = a + b;

コンパイラは、 のオーバーロードされた演算子が見つからないと表示しますchar[dim]

文字列に + 演算子がないことを意味しますか?

しかし、いくつかの例では、このような状況があります。これが文字列をさらに連結する正しい方法でない場合、最善の方法は何でしょうか?

ベストアンサー1

記述したコードは動作します。おそらく、無関係だが似たようなことを達成しようとしているのでしょう:

std::string c = "hello" + "world";

charこれはC++では2つのポインタを追加しようとしているように見えるため、うまくいきません。代わりに、必要少なくとも1つのchar*リテラルをに変換しますstd::string。質問で既に投稿した内容を実行することもできます(私が言ったように、このコード意思作業) または次の操作を実行します。

std::string c = std::string("hello") + "world";

おすすめ記事