0 / 0 / 0
Регистрация: 05.10.2010
Сообщений: 4
1

Найти в строке все слова, представляющие собой правильные записи дат в формате "dd/mm/yyyy"

27.11.2010, 16:04. Показов 1346. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Строка состоит из слов, разделенных одним или несколькими пробелами. Найти все слова, представляющие собой правильные записи дат в формате “dd/mm/yyyy”. Вывести их на экран по возрастанию от более ранних к более поздним. Затем модифицировать строку, удалив их из строки. Разделители сохранить. Вывести на экран модифицированную строку.

как лучше это реализовать? и как вообще искать эти даты в строке?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2010, 16:04
Ответы с готовыми решениями:

В двумерном массиве записаны слова, представляющие собой последовательность цифр
В двумерном массиве записаны слова, представляющие собой последовательность цифр, завершающихся 0...

Перенести в новую строку из исходной строки слова, представляющие собой запись числа
Задан текст, состоящий из слов, записанных через пробелы или запятые. Длина текста не больше 255...

Найти строки матрицы представляющие собой знакочередующийся ряд
В каждом столбце матрицы вещественных чисел Р(k×m) заменить минимальный элемент суммой...

Как найти все возможные записи слова `banana` в строке?
Например: в строке bbananana все возможные записи будут выглядеть так: 1. b-anana-- 2. ...

Вывести на экран все встречающиеся в предложении даты в формате DD.MM.YYYY
Дан текст. Вывести на экран все встречающиеся в предложении даты в формате DD.MM.YYYY

1
12 / 12 / 8
Регистрация: 14.11.2010
Сообщений: 29
27.11.2010, 22:07 2
Лучший ответ Сообщение было отмечено Лэни как решение

Решение

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// char_str.cpp
#include <iostream>
#include <cstring>
using namespace std;
class date
{
private:
    int day, month, year;
public:
    void set_date(int d, int m, int y)
    {
        day=d; month=m; year = y; 
    }
    void show_date()
    {
        cout << day << "/" << month << "/" << year;
    }
    int sort(date dd)
    {
        if ((year > dd.year) || ((year == dd.year)&&(month>dd.month)) || ((year==dd.year)&&(month==dd.month)&&(day>dd.day)))
        {
            return 1;
        }
        else
            return 0;
    }
};
int main()
{
    setlocale(LC_ALL,"Russian");
    date pznach[100];
    const int MAX = 100000;
    int count = 0;
    char str[MAX];
    cout << "Введите строку: ";
    cin.getline(str, MAX);
 
    count = 0;
    for (int i=9; i <strlen(str); i++)
    {
        if ((str[i]>= '0' && str[i] <= '9') && 
            (str[i-1]>= '0' && str[i-1] <='9') && 
            (str[i-2]>= '0' && str[i-2] <='9') && 
            (str[i-3]>= '0' && str[i-3] <='9') && 
            (str[i-4]=='/') &&
            (str[i-5]>= '0' && str[i-5] <='9') &&
            (str[i-6]>= '0' && str[i-6] <='9') &&
            (str[i-7]=='/') &&
            (str[i-8]>= '0' && str[i-8] <='9') &&
            (str[i-9]>= '0' && str[i-9] <='9')) 
        {
            char temp_d[2], temp_m[2], temp_y[4];
            int t_d, t_m, t_y;
            temp_d[0] = str[i-9];
            temp_d[1] = str[i-8];
            temp_m[0] = str[i-6];
            temp_m[1] = str[i-5];
            temp_y[0] = str[i-3];
            temp_y[1] = str[i-2];
            temp_y[2] = str[i-1];
            temp_y[3] = str[i];
            t_d = atoi(temp_d);
            t_m = atoi(temp_m);
            t_y = atoi(temp_y);
            pznach[count].set_date(t_d, t_m, t_y);
            count++;
        }
    }
 
    cout << endl << "Найденные даты: " << endl;
    for (int i=0; i<count; i++)
    {
        pznach[i].show_date();
        cout << endl;
    }
 
    for (int i=0; i<count; i++)
    {
        for (int j=0; j<count-1; j++)
        {
            if ((pznach[j].sort(pznach[j+1])) == 1)
            {
                date temp;
                temp = pznach[j];
                pznach[j] = pznach[j+1];
                pznach[j+1] = temp;
            }
        }
    }
 
    cout << endl << "Отсортированные даты: " << endl;
    for (int i=0; i<count; i++)
    {
        pznach[i].show_date();
        cout << endl;
    }
 
 
    return 0;
}
пример как искать и сортировать
0
27.11.2010, 22:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2010, 22:07
Помогаю со студенческими работами здесь

Найти даты в формате “DD/MM/YYYY”
необходимо распечатать все даты в предложении формате “DD/MM/YYYY”. предложение состоит из слов,...

Найти все слова, которые представляют собой слово-палиндром
Данго предожение, в котором слова разделенеы запятой или пробелом, а общяя длина меньше либо равна...

Дата записана в формате YYYY-MM-DD, время записано в формате HH:MM. Перед температурой всегда стоит знак, если она не ра
Даже не представляю с какой стороны браться. Может есть какой-то фильтр? Выделила температуру, но...

Найти количество строк текстового файла, которые начинаются словом, являющимся правильной датой в формате dd/mm/yyyy
Найти количество строк текстового файла, которые начинаются словом, являющимся правильной датой в...

Выбрать элементы массива, представляющие собой полные квадраты
Помогите пожалуйста: С заданного массива целых чисел {ai}, (i = 1,2 ... n) выбрать элементы,...

Разработать классы, представляющие собой простейшие плоские геометрические фигуры
Уважаемые форумчане! Крик о помощи Разработать классы на языке Java, представляющие собой...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru