• Почему не работает функция замены слова (с учетом массива-разделителя)?

    @MiiNiPaa
    Пока разбирать код времени не было, но в самом начале грубая ошибка:memset(buffer1, 0, sizeof(buffer1));

    sizeof(buffer1) вернёт 4 или 8 в зависимости от архитектуры приложения, так как тип buffer1 — char*. При передаче массива в функцию данные о его конкретном типе теряются (Это одна из причин, почему массивы в С++ использовать не рекомендуется)

    Из-за этого strcat может отработать некорректно.

    (Кстати, пример работы это же как должно быть, правильно?)

    EDIT: В вашем случае использование strtok неоправдано, посмотрите в сторону strpbrk и strcspn/strspn

    Плюс ваша "защита от переполнения" выделяет слишком маленький буфер. В результате конечный 0 не копируется (не говоря о том, что она ни от чего не защищает и ограничивает возможности использования функции)

    Добавьте больше информации об ошибке. Что происходит?
    Ответ написан
    3 комментария