LestaD
@LestaD
Веб разработчик

Как объединить строки и присвоить значение переменной в классе?

У меня есть класс
class Tampler
{
public:
Tampler();
private:
const char* m_sMyString;
};

И есть набор строк
#define TLDR_EXT ".tldr"
const char* GetCurrentDir();
const char *filename = "filename";


Мне необходимо в конструкторе объединить полученные строки в одну и значение присвоить m_sMyString;
Как это сделать?
  • Вопрос задан
  • 2634 просмотра
Решения вопроса 1
EXL
@EXL
Энтузиаст
Простите, а в чём проблема? В зависимости от ситуации можете использовать как С++-подход:
Tampler()
{
        std::string str(GetCurrentDir());
        str = str + filename + TLDR_EXT;
        m_sMyString = strdup(str.c_str());
}
Так и C-подход:
Tampler()
{
        char *tempstr = (char *)malloc(strlen(GetCurrentDir()) + strlen(filename) + strlen(TLDR_EXT) + 1);
        strcpy(tempstr, GetCurrentDir());
        strcat(tempstr, filename);
        strcat(tempstr, TLDR_EXT);
        m_sMyString = tempstr;
}

Если я, конечно, правильно вас понял.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AxisPod
@AxisPod
Поменять const char* на std::string и не париться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы