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

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

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

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

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

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

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

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

08.00.00
17.00.00

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

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

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

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

вектор типа string - C++
Привет! Пожскажите пожалуйста как в векторе типа string определить размер каждого входящего в него слова. Это как- то через опе6ратор...

Функция типа String - C++
Здравствуйте, нужна ф-ция. возвращающая строковой параметр, что-то вроде: string test(){ return "привет"; } Подскажите, к какому...

Строки типа string - C++
Словом, входящим в состав строки, назовѐм непрерывную последовательность символов, ограниченную символами–разделителями, началом и концом...

Сократить объект типа string - C++
У меня есть некоторый объест типа string (назовем его str). Как наиболее быстрым способом можно убрать последние N символов этого объекта?...

Работа с объектами типа string - C++
Здравия желаю!:) Возник вопрос по строкам. При таком коде#include<iostream> #include<conio.h> using namespace std; int...

Перевод данных из типа string в тип tm - C++
Добрый день. Пишу с вопросом- дана структура, в которой хранятся данные starttime и endtime типа string формата "dd.mm.yyyy hh:mm:ss". Как...

Сортировка списка типа string по размеру - C++
Надо отсортировать строки типа string по размеру, но к сожалению сортируется все по буквам, и в результате вместо ответа: "cab", ответ -...

Как сформировать строку типа string - C++
#include <iostream> #include <string> int main() { string s; s = 'a'; s = 'b'; s = '\0'; std::cout...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
17.02.2013, 23:38     Поиск времени в строке типа string #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;
}
ForEveR
В астрале
Эксперт С++
7967 / 4729 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
18.02.2013, 09:18     Поиск времени в строке типа string #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
Nividimka
1 / 1 / 0
Регистрация: 16.11.2012
Сообщений: 15
18.02.2013, 09:51  [ТС]     Поиск времени в строке типа string #4
спасибо,всё работает
Yandex
Объявления
18.02.2013, 09:51     Поиск времени в строке типа string
Ответ Создать тему
Опции темы

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