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

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

Восстановить пароль Регистрация
 
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
10.01.2014, 20:29     Выделить из строки имя файла без расширения #1
Дана строка, содержащая полное имя файла, то есть имя диска, список ката-
логов (путь), собственно имя и расширение. Выделить из этой строки имя файла (без
расширения).

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

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];
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 20:29     Выделить из строки имя файла без расширения
Посмотрите здесь:

C++ Чтение массива объектов и регистрация расширения файла
C++ Строки с Файлом(в стр без файла)
C++ Из полного пути к файлу выделить только имя файла
Добавление расширения файла C++
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;
}
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
10.01.2014, 21:18  [ТС]     Выделить из строки имя файла без расширения #3
AnDrew_LP, а можно через функции пожалуйста?
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;
}
Yanush
 Аватар для Yanush
154 / 150 / 44
Регистрация: 28.09.2013
Сообщений: 281
Завершенные тесты: 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");
}
Yandex
Объявления
10.01.2014, 23:11     Выделить из строки имя файла без расширения
Ответ Создать тему
Опции темы

Текущее время: 04:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru