Конкатенация строк не работает должным образом [закрыто]
Я знаю, что это распространенная проблема, но искать ссылки и другие материалы, я не нахожу четкого ответа на этот вопрос.
рассмотрим следующий код:
#include <string>
// ...
// in a method
std::string a = "Hello ";
std::string b = "World";
std::string c = a + b;
компилятор говорит мне, что он не может найти перегруженного оператора char[dim]
.
значит ли это, что в строке нет оператора+?
но в нескольких примерах есть такая ситуация, как эта. Если это неправильный способ объединить больше строк, что такое лучший способ?
4 ответов
ваш код, как написано, работает. Вы, вероятно, пытаетесь достичь чего-то несвязанного, но похожего:
std::string c = "hello" + "world";
Это не работает, потому что для C++ кажется, что вы пытаетесь добавить два char
указатели. Вместо этого ты!--8-->нужно для преобразования по меньшей мере одного из char*
литералы к std::string
. Либо вы можете сделать то ,что вы уже разместили в вопросе (как я уже сказал, этот код будет работы) или вы делаете следующее:
std::string c = std::string("hello") + "world";
Я бы сделал так:
std::string a("Hello ");
std::string b("World");
std::string c = a + b;
, который компилируется в VS2008.