путём куда нибудь, например C\\Users\\1\\documents, так вот, мне надо распарсить эту строку по слешу. Я это делаю с помощью wcstok, но затем требуется удалить последний элемент, то есть documents. Для этого хочу каждый элемент записывать в массив, там удалять последний элемент и обратно всё в строку записывать. И тут проблемка с записью, и бо в массиве чётко надо указывать количество элементво, а я то хз сколько эементов из путя получится. Что делать?
Может, стоит воспользоваться std::filesystem::path?
Нет, в Си для работы с файловой системой есть только боль и страдания
Вообще, не ясно, зачем нужен промежуточный массив. Найти последний \\ и удалить всё за ним
а как понять что определённый слеш последний?
После него нет следующего :)
Идти с конца и найти первый?
не подскажите, с помощью чего можно строку перевернуть?
Чтобы идти с конца, переворачивать строку не надо
А зачем? Идите от N - 1 к 0, через вычитание 1 от текущего индекса (N - длина строки)
Задававший этот вопрос выше писал, что пишет на С
Дествительно)
MyReverse(char* s, size_t len)
Урааа рекурсия
На мой взгляд, самый быстрый и простой вариант - использовать предложенное решение с итерированием с конца строки в начало и поиском первого обратного слеша и копированием всего что идет до него в новую строку - это и будет решение вашей конкретной задачи.
Старший сапёр на связи
everything is std::rotate
Обсуждают сегодня