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

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

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

Проверить формат HH:MM:SS через string - C++

30.11.2012, 01:51. Просмотров 544. Ответов 4
Метки нет (Все метки)

Задача такая что программа требует время в формате HH:MM:SS, проверяет ввод и выдает ответ, например - 23:09:03 - правильно!
2:2:2 - неправильный формат,
12:02:94 - неправильное время,
14.05.35 - неправильный формат,
qw2:we34 - неправильный формат.

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

Чем отличается вставка в vector<string > через pushback и через индекс []? - C++
Просто пробовал через индекс и получил ошибку out of range. То есть так : ifstream File; File.open(&quot;D:\\temp.txt&quot;); ...

Как проверить есть ли в string что нибудь ? - C++
Как проверить есть ли в string что нибудь ? Например функция для проверки стороки &quot;S&quot;.

Как проверить, что пользователь ввел число в переменную string? - C++
Скажите пожалуйста как проверить что пользователь ввел число в переменную string? И как его потом конвертировать в int ?

Доступ к паре в map<string, vector<pair<string, string>>>Temp - C++
Подскажите пожалуйста как получить данные в векторе пар ? void showData(const map&lt;string, vector&lt;pair&lt;string, string&gt;&gt;&gt;Temp) { ...

Строки через std::string - C++
Дана строка, слова в которой состоят из букв латинского алфавита и десятичных цифр. Остальные символы – разделители между словами. Получить...

Переделать работу с текстом через string - C++
нужно этот код переделать с помощью строк string #pragma hdrstop #pragma argsused #include #include #include int...

4
MrGluck
Модератор
Эксперт CЭксперт С++
7527 / 4665 / 704
Регистрация: 29.11.2010
Сообщений: 12,741
30.11.2012, 01:55 #2
Цитата Сообщение от klimentij Посмотреть сообщение
Нужно сделать через string.
Так даже не интересно. Тут пара строк с string.find.
Вот на сях с strtok куда увлекательнее.
0
klimentij
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 10
30.11.2012, 02:02  [ТС] #3
Цитата Сообщение от MrGluck Посмотреть сообщение
Так даже не интересно. Тут пара строк с string.find.
Вот на сях с strtok куда увлекательнее.
Очень нужно! Завтра надо сдать работу, не могли бы помочь?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7527 / 4665 / 704
Регистрация: 29.11.2010
Сообщений: 12,741
30.11.2012, 02:28 #4
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
#include <iostream>
#include <cstdlib>
#include <string>
 
bool correct(const std::string &str)
{
    if (str.size() != 8)
        return false; // incorrect form
    std::size_t firstColon = str.find(':');
    std::size_t secondColon = str.rfind(':'); // searches from end to begin
    if (firstColon != 2 || secondColon != 5)
        return false; // incorrect positions of colon(s)
    std::string HH = str.substr(0, 2);
    std::string MM = str.substr(3, 2);
    std::string SS = str.substr(6, 2);
    // you can use to_string (better) or atoi (worse) to convert to int
    int H = std::atoi(HH.c_str());
    int M = std::atoi(MM.c_str());
    int S = std::atoi(SS.c_str());
    // if all of these statements resturn true, function returns false
    return !(H < 0 || H > 24 || M < 0 || M > 60 || S < 0 || S > 60);
}
 
int main()
{
    std::string str;
    std::cout<< "Enter time in format HH:MM:SS"<< std::endl;
    std::cin>> str;
    std::cout<< (correct(str) ? "Correct" : "Incorrect");
    return 0;
}
1
klimentij
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 10
30.11.2012, 10:11  [ТС] #5
Большое спасибо!
0
30.11.2012, 10:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 10:11
Привет! Вот еще темы с ответами:

В string через getline() попадает предыдущий пробел - C++
Почему-то во втором и последующем объекте в переменной стринг пусто. Подозреваю, что туда передаётся нажатие клавиши Enter. #include...

Простой ввод строки с пробелами через string - C++
Visual studio 2012, никак не могу ввести строку через string. У меня не работает вот этот фрагмент кода: #include &quot;stdafx.h&quot; #include...

Как вывести переменную string через cout? - C++
Я думаю из кода все понятно станет #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;ctime&quot; using namespace std; int main() { ...

Подсчет длины string, переданного через указатель - C++
Здравствуйте! Не могу получить длину строки string если она передана в функцию через указатель. Задача проста: передать в функцию через...


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

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

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