Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

08.00.00
17.00.00

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

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

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

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

Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? - C++
#include <stdlib.h> #include <iostream> #include <string.h> //using namespace std; class string { private: int...

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

Читать строку типа string из файла, разбить ее на массив слов типа char - C++
Нужно сделать так что бы строчка вида "<слово1>:<слово2>:<слово3>:<слово4>" , считывалась и каждое слово заносилось в свою переменную....

Как скопировать строку типа std::string в другую строку такого же типа? - C++
Хотел скопировать строку #include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(int...

3
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 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
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2013, 09:51
Привет! Вот еще темы с ответами:

Перевести строку типа string, в строку типа double - C++
Помогите с кодом. Как строку типа стринг, например 123123.123123, перевести в тип double? Кода перевожу с помощью &quot;atof&quot; оно берёт только...

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

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

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


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

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

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