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

Строковый файл - C++

Восстановить пароль Регистрация
 
ensoleille
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 34
11.07.2011, 19:04     Строковый файл #1
Дан строковый файл, содержащий даты в формате «день/месяц/год», причем под день и месяц отводится по две позиции, а под год — четыре (например, «16/04/2001»). Создать новый строковый файл, содержащий все зимние даты из исходного файла (в обратном порядке). Если даты с требуемым временем года в файле отсутствуют, то оставить результирующий файл пустым.

как выделить эти позиции под день\месяц\год?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.07.2011, 19:26     Строковый файл #2
ensoleille, примерно вот как можешь разбить строку на лексемы:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <iterator>
 
using namespace  std;
 
void Tokenize(const string& str,
                          vector<string>& tokens,
                          const string& delimiters = " ")
{
        string::size_type lastPos = str.find_first_not_of(delimiters, 0);
        string::size_type pos     = str.find_first_of(delimiters, lastPos);
 
        while (string::npos != pos || string::npos != lastPos)
        {
                tokens.push_back(str.substr(lastPos, pos - lastPos));
                lastPos = str.find_first_not_of(delimiters, pos);
                pos = str.find_first_of(delimiters, lastPos);
        }
}
 
bool myfn(string i, string j) { return i.size()<j.size(); }
 
int main(int argc, char* argv[])
{
        string str = "16/04/2001";;
 
        vector<string> tokens;
        vector<string>::iterator it;
 
        ostream_iterator<string> cit(cout, "\n");
 
        Tokenize(str, tokens, " /");
 
        cout << "str: " << str << endl;
        cout << "\nstr has " << tokens.size() << " word." << endl;
 
        cout << "\nstr' word:" << endl;
        copy(tokens.begin(), tokens.end(), cit);
 
        return 0;
}
ensoleille
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 34
11.07.2011, 19:28  [ТС]     Строковый файл #3
а можно поподробней,и желательно в просто си?)
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
11.07.2011, 19:32     Строковый файл #4
Цитата Сообщение от ensoleille Посмотреть сообщение
а можно поподробней,и желательно в просто си?)
C
1
strtok
вам в помощь..)

Добавлено через 3 минуты
C
1
for (char* p = strtok(str, "/"); p != NULL; p = strtok(NULL, "/"))
Разбиваете таким образом на лексемы и обрабатываете их так как вам нужно..
ensoleille
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 34
11.07.2011, 20:12  [ТС]     Строковый файл #5
так,это поняла. а чем строковый файл отличается от файлов вообще?
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
11.07.2011, 20:23     Строковый файл #6
Цитата Сообщение от ensoleille Посмотреть сообщение
строковый файл
Наверное имелось в виду текстовый файл.
ensoleille
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 34
11.07.2011, 20:24  [ТС]     Строковый файл #7
ага.тоесть я могу изначально внести в него даты и считывать их?
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.07.2011, 20:26     Строковый файл #8
Цитата Сообщение от ensoleille Посмотреть сообщение
ага.тоесть я могу изначально внести в него даты и считывать их?
разве это не ясно из задания:
Цитата Сообщение от ensoleille Посмотреть сообщение
Дан строковый файл, содержащий даты в формате «день/месяц/год»
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
11.07.2011, 20:27     Строковый файл #9
Цитата Сообщение от ensoleille Посмотреть сообщение
ага.тоесть я могу изначально внести в него даты и считывать их?
Ну можете.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2011, 22:01     Строковый файл
Еще ссылки по теме:

C++ Дан символ 'C' (прописная латинская буква) и текстовый файл. Создать строковый файл, содержащий все слова из исходного файла, начинающиеся этой буквой
Дан символ 'C' (прописная латинская буква) и текстовый файл. Создать строковый файл, содержащий все слова из исходного файла C++
C++ Строковый массив (объявить пустой глобальный строковый массив из 16 элементов)

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

Или воспользуйтесь поиском по форуму:
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.07.2011, 22:01     Строковый файл #10
C
1
2
int y,m,d;
fscanf(file,"%d/%d/%d",&d,&m,&y);
не?

или
fgets() и sscanf()
Yandex
Объявления
11.07.2011, 22:01     Строковый файл
Ответ Создать тему
Опции темы

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