#include <iostream>
#include <string>
using namespace std;
int main() {
string filePath = "C:\WINDOWS\system32\mspaint.exe"; // задаем путь к файлу
string fileName = ""; // создаем пустую строку для имени файла
// Находим индекс последнего символа '' в строке
int lastSlashIndex = filePath.find_last_of("\");
// Если символ не найден, значит строка не содержит путь к файлу
if (lastSlashIndex != string::npos) {
// Находим индекс последнего символа '.' в строке
int lastDotIndex = filePath.find_last_of(".");
// Если символ не найден, значит строка не содержит расширение файла
if (lastDotIndex != string::npos) {
// Вырезаем из строки имя файла (без расширения)
fileName = filePath.substr(lastSlashIndex + 1, lastDotIndex - lastSlashIndex - 1);
}
}
cout << fileName << endl; // Выводим имя файла
return 0;
}
C/C++
С++ ООП. Просьба исправить код
#include
#include
using namespace std;
int main() {
string filePath = "C:\\WINDOWS/system32/mspaint.exe"; // задаем путь к файлу
string fileName; // стринги и так пустые
auto it = filePath.rbegin();
bool was_point = false; //флаг удаления точки
for (; it != filePath.rend(); it++)
{
//удаление расширения файла если таковое присутствует
if (*it == '.' && !was_point) { fileName.clear(); was_point = true; continue; }
//выход при нахождении разделителя
if (*it == '/' || *it == '\\') break;
fileName.push_back(*it);
}
if (it == filePath.rend()) fileName = "File name is not correct."; else
reverse(fileName.begin(), fileName.end()); //перевернуть имя
cout
Исправленный код:
#include
#include
using namespace std;
int main() {
string filePath = "C:\\WINDOWS\\system32\\mspaint.exe"; // задаем путь к файлу
string fileName = ""; // создаем пустую строку для имени файла
// Находим индекс последнего символа '\' в строке
int lastSlashIndex = filePath.find_last_of("\\");
// Если символ не найден, значит строка не содержит путь к файлу
if (lastSlashIndex != string::npos) {
// Находим индекс последнего символа '.' в строке
int lastDotIndex = filePath.find_last_of(".");
// Если символ не найден, значит строка не содержит расширение файла
if (lastDotIndex != string::npos) {
// Вырезаем из строки имя файла (без расширения)
fileName = filePath.substr(lastSlashIndex + 1, lastDotIndex - lastSlashIndex - 1);
}
}
cout
Олег Петров
Спаибо, друг!
Похожие вопросы
- Записать в файл те строки матрицы, которые содержат только один ноль С++ ПОМОГИТЕ ИСПРАВИТЬ КОД
- Помогите пожалуйста исправить код
- Помогите, пожалуйста, исправить ошибку в коде (C++).
- Помогите исправить ошибку в коде, смотри внутри.
- Лабораторка по ООП
- Помогите с ООП на C++
- Вопрос к экзамену по ООП.
- Самые значительные различия С и С++ ( Кроме наличия ООП )
- Вопрос по ООП на С++
- Лютый препод не унимается. Просит без ООП написать функцию обмена значениями переменных любого типа!