1. ホーム
  2. c++

[解決済み] 文字列の連結がうまくいかない [終了しました]

2023-06-05 20:47:51

質問

よくあることだとは思うのですが、参考文献などを探しても明確な答えが見つかりません。

次のようなコードを考えてみます。

#include <string>

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

のオーバーロードされた演算子が見つからないとコンパイラに言われました。 char[dim] .

文字列の中に+演算子がないということでしょうか?

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

どのように解決するのですか?

あなたのコードは、書かれているように、動作します。あなたはおそらく、関係のない、しかし似たようなことを達成しようとしているのでしょう。

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

これはうまくいきません。C++では、2つの char のポインタを追加しようとしているように見えるからです。その代わりに が必要です。 の少なくとも1つを変換する必要があります。 char* リテラルを std::string . すでに質問で投稿したようなことをするか(やはり、このコードは は動作します)、または次のようにします。

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