Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Nividimka
1 / 1 / 0
Регистрация: 16.11.2012
Сообщений: 15
1

Поиск времени в строке типа string

17.02.2013, 23:09. Просмотров 379. Ответов 3
Метки нет (Все метки)

Задана строка, состоящая из слов. Слова друг от друга отделяются одним или несколькими пробелами. Количество символов не превышает 255. В конце текста ставится точка. Сформировать и вывести массив слов заданного типа.

Тип => Время ЧЧ.ММ.СС

То есть,например, есть строка "Я начинаю рабочий день в 08.00.00, а заканчиваю в 17.00.00", отсюда надо вытащить:

08.00.00
17.00.00

и записать в массив string mass[];

Добавлено через 33 минуты
Помогите написать функцию для нахождения формата времени, пожалуйста
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 23:09
Ответы с готовыми решениями:

Смена мест символов в строке типа string
Допустим у меня есть какая-то строка, где есть символы 'A' 'B' и 'C': getline(cin, line); // line...

Как найти точку в строке типа string?
string inputline = { "if (Name1 < 2.2) Name2=Name3+2; else break;" cout <<...

Присвоение объекту типа string рандомный элемент из массива типа string
Добрый вечер, дорогие форумчане. Я столкнулся с проблемой. Как присвоить объекту типа string...

Поиск слова в строке string
Задана строка из слов, нужно найти конкретное слово. Есть ли для string библиотечная функция поиска...

Поиск и удаление в строке string
Всем привет! Проблема в следующем: в string строку записал из файла предложение, которое состоит из...

3
xtorne21st
интересующийся
306 / 277 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
17.02.2013, 23:38 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
#include <iostream>
#include <string>
#include <vector>
#include <cctype>
 
int main()
{
    std::string word;
    std::vector<std::string> line;
 
    while (std::cin.get() != '\n') {
        std::cin >> word;
        line.push_back(word);
    }
 
    for (std::vector<std::string>::const_iterator iter = line.begin(); iter != line.end(); ++iter)
        if (iter->size() == 8 && isdigit((*iter)[0]) && isdigit((*iter)[1]) &&
                isdigit((*iter)[3]) && isdigit((*iter)[4]) &&
                    isdigit((*iter)[6]) && isdigit((*iter)[7]) &&
                        (*iter)[2] == '.' && (*iter)[5] == '.')
                    std::cout << *iter << '\n';
    
    return 0;
}
Добавлено через 6 минут
будет работать только если числовой формат будет ограждён пробелами, т.е "Я начинаю рабочий день в 08.00.00 , а заканчиваю в 17.00.00 часов."

Добавлено через 5 минут
исправленная версия
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
#include <iostream>
#include <string>
#include <vector>
#include <cctype>
 
int main()
{
    std::string word;
    std::vector<std::string> line;
 
    while (std::cin.get() != '\n') {
        std::cin >> word;
        line.push_back(word);
    }
 
    for (std::vector<std::string>::const_iterator iter = line.begin(); iter != line.end(); ++iter)
        if (isdigit((*iter)[0]) && isdigit((*iter)[1]) &&
                isdigit((*iter)[3]) && isdigit((*iter)[4]) &&
                    isdigit((*iter)[6]) && isdigit((*iter)[7]) &&
                        (*iter)[2] == '.' && (*iter)[5] == '.')
            std::cout << (*iter)[0]<< (*iter)[1]<< (*iter)[2]<< (*iter)[3] 
                << (*iter)[4] << (*iter)[5] << (*iter)[6]<< (*iter)[7] << '\n';
    
    return 0;
}
1
ForEveR
В астрале
Эксперт С++
8009 / 4766 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
18.02.2013, 09:18 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <boost/regex.hpp>
#include <iostream>
#include <string>
#include <vector>
 
int main()
{
   const std::string s = "I start my work in 08.00.00 and end in 17.00.00";
   const boost::regex re("(\\d{2}\\.){2}\\d{2}");
   std::vector<std::string> times;
   boost::smatch matches;
   std::string::const_iterator start = s.begin();
   while (start != s.end() && boost::regex_search(start, s.end(), matches, re))
   {
      start = matches[0].second == s.end() ?  matches[0].second : matches[0].second + 1;
      times.push_back(matches[0]);
   }
   std::copy(times.begin(), times.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}
http://liveworkspace.org/code/2i0OfQ$7
1
Nividimka
1 / 1 / 0
Регистрация: 16.11.2012
Сообщений: 15
18.02.2013, 09:51  [ТС] 4
спасибо,всё работает
0
18.02.2013, 09:51
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2013, 09:51

Поиск объекта в классе по строке типа char
Есть такая задача : Описать класс с именем PRICE, содержащий следующие поля: - название товара;...

Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина?
#include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; //using namespace std; class...

Запись информации из вектора типа string в вектор типа double
Как записать только числа , которые хранятся в векторе типа стринг, в вектор типа дабл, в векторе...


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

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

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