конкатенация строк xmlChar *

0

Я пытаюсь связать строки xmlChar *, чтобы добавить ".rels" в имя файла. По некоторым причинам я вижу ошибки:

  1. Ошибка инициализации c2440 не может преобразовать из const char [6] в const xmlChar *.
  2. Const_cast может только корректировать классификаторы типов; он не может изменить базовый тип.

xmlChar определяется из xmlstring.h, libopc/libxml2, так как я знаю, что не все знают о xmlChar.

xmlChar * temp = c->part_array[i].name; //this is a filename.doc with  path, has no compile error
                const xmlChar* temp2 = const_cast<xmlChar*>(".rels"); //"rels" here has error
                xmlStrcat(temp, temp2);

xmlStrcat хочет xmlStrcat (xmlChar * cur, const xmlChar * add), который, как мне кажется, у меня есть, как только я получу temp2, чтобы быть счастливым.

Есть идеи? У меня возникли проблемы с поиском примеров xmlChar *, где он был подобран таким образом. Я пробовал использовать только:

const xmlChar* temp2 = ".rels";

но получите ошибку:

ошибка c2440 инициализация не может преобразовать из const char [6] в const xmlChar *

Теги:
string-concatenation
libxml2

2 ответа

0

Прямое кастинг работал для меня:

Изображение 174551

0

Мне пришлось использовать xmlStrndup и xmlCharStrndup

        xmlChar * temp = xmlStrndup(c->part_array[i].name, max_part_name);
        const char* tempA = ".rels";
        xmlChar* temp2 = xmlCharStrndup(tempA, sizeof(tempA));
        xmlStrcat(temp, temp2);
        const xmlChar* temp3 = (const xmlChar*)temp;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню