Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
#1

Выделить из строки имя файла без расширения - C++

10.01.2014, 20:29. Просмотров 1308. Ответов 4
Метки нет (Все метки)

Дана строка, содержащая полное имя файла, то есть имя диска, список ката-
логов (путь), собственно имя и расширение. Выделить из этой строки имя файла (без
расширения).

ничего не выводит.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<iostream>
#include <string>
#include<math.h>
#include<windows.h>
#include<string.h>
#include<stdio.h>
#include <ctype.h>
#include <fstream>
 
using namespace std;
 
char* name ( char name[15]);
 
int main()
{
 char s[15]="C:\temp\file.txt";
    cout << name (s);
 
    return 0;
}
char* name ( char name[15])
{
    char b;
    name = "C:\temp\file.txt";
    int n=strlen(name);
    for (int i=0;i<n;i++)
    if (name[i]=='.' )
        b=name[i-4];
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 20:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выделить из строки имя файла без расширения (C++):

Выделить из строки с полным путем к файлу само имя файла без расширения - C++
String58. Дана строка, содержащая полное имя файла, то есть имя диска, спи-сок каталогов (путь), собственно имя и расширение. Выделить из...

Из полного пути к файлу выделить только имя файла - C++
Написать программу, которая по введённому полному пути к файлу выделяла бы только имя файла (то, что следует после последнего слеша или...

Выделить из этой строки название первого каталога (без символов «\») - C++
Помогите написать программу на языке С++. Задание такое: Дана строка, содержащая полное имя файла. Выделить из этой строки название...

Определить текущее имя исходного файла и номер строки - C++
Всем привет. Может кто подскажет как нибудь программно можно определить текущее имя исходного файла (их у меня порядка 10 штук) и строку...

Строки с Файлом(в стр без файла) - C++
как сделать так чтобы прога читала строки не из файла,а чтобы вводить их самому!?)(БЕЗ ФАЙЛОВ) #include &lt;stdio.h&gt; #include...

Запись строки из файла без пробелов - C++
Здравствуйте, нужна ваша помощь. Мне нужно считать строку из файла и убрать пробелы перед фразой, которую я записываю и потом вывожу.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
AnDrew_LP
160 / 162 / 9
Регистрация: 29.05.2010
Сообщений: 435
10.01.2014, 21:07 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
 
int main()
{
    char str[17] = "C:\\temp\\file.txt";
    char *s1 = strrchr(str,'\\');
    char *s2 = strrchr(str,'.');
    char *name = new char[s2 - s1];
    memcpy(name, s1 + 1, s2 - s1 - 1);
    name[s2 - s1 - 1] = '\0';
    puts(name);
    system("pause");
    delete []name;
    return 0;
}
0
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
10.01.2014, 21:18  [ТС] #3
AnDrew_LP, а можно через функции пожалуйста?
0
AnDrew_LP
160 / 162 / 9
Регистрация: 29.05.2010
Сообщений: 435
10.01.2014, 21:38 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
 
char *Name(char *Directory)
{
    char *s1 = strrchr(Directory,'\\');
    char *s2 = strrchr(Directory,'.');
    char *name = new char[s2 - s1];
    memcpy(name, s1 + 1, s2 - s1 - 1);
    name[s2 - s1 - 1] = '\0';
    return name;
}
 
int main()
{
    char str[17] = "C:\\temp\\file.txt";
    char *name = Name(str);
    puts(name);
    system("pause");
    delete []name;
    return 0;
}
1
Yanush
158 / 154 / 46
Регистрация: 28.09.2013
Сообщений: 287
Завершенные тесты: 1
10.01.2014, 23:11 #5
А можно и мне тоже вариант предложить ; )

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
char *GetFileName(char *path)
{
    char *filename = new char[32];
    int i = strlen(path);
    int j = 0;
    while (path[--i] != '.');
    while (path[--i] != '\\')
        filename[j++] = path[i];
    filename[j] = '\0';
    return filename = strrev(filename); 
}
 
int main()
{
    char *path = "c:\\TestFolder\\123\\TestFile.txt";
    std::cout << GetFileName(path) << "\n";
    return system("pause");
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2014, 23:11
Привет! Вот еще темы с ответами:

Изменение строки из файла без перезаписи - C++
Привет, пробую без перезаписи файла заменить все буквы строки на большие. Пока что вышло только так: bool...

Строки с палиндромами из входного файла записать в один файл, а без палиндромов - в другой - C++
Всем ку, в общем задача разбить входной файл на 2 выходных. В 1-ый записать строки с палиндромами, во второй без палиндромов. Вот мой...

Добавление расширения файла - C++
Подскажите, пожалуйста, как сделать так, чтобы в программе при запуске пользователь вводиил только имя файла а расширение к нему добавляла...

Проверка расширения файла по его содержимому - C++
Здравствуйте! Подскажите, пожалуйста: некоторое время я поступил на курсы С++ - и нам назначили итоговый проект. Назначили в стиле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.01.2014, 23:11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru