Всем доброго времени суток…
кароч у меня такая проблема: я пишу на языке c++ некую прогу.. в какой то момент времени я получаю строку типа C:\ololo\olo ololo\ololo.exe или D:\ololo olo\olololololololololo.exe
мне нужно обрезать такую строку до последнего слэша включительно то есть чтобы осталось только конечное имя файла (например ololo.exe). Каким оператором мне лучше воспользоваться? или есть другой способ получить конечное имя файла из его полного пути? Заранее спасибо=)
10 января 2009 в 15:05
srtrchr – сделает за вас всю работу
char *last = strrchr(str, '//');
if (last != NULL) {
…
тут зная указатель на последний слешь можно сделать все что угоно
}
10 января 2009 в 11:01
Есть специальная функция в winapi: PathRemoveFileSpec
Советую просмотреть все функции, которые начинаются с Path – они очень полезные.
10 января 2009 в 1:03
//Функция что возращает указатель на строка с именем файла.
char* Get_Only_Name(char *str)
{
char *ptr=str;
for(int i=strlen(str);i>0;i–)
if(str[i]=='\\')
ptr=str[i];
return ptr;
}
10 января 2009 в 1:01
Причем проверять от конца к началу
10 января 2009 в 1:00
проверяешь длину строки функцией int strlen(char *str); и в цикле проверять проверять символ пока не равен '\\'. И вернуть указатель.
Лучше этот процес оргонизовать в отдельной функции.