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

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

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

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

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

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

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

Чем отличается вставка в 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 ?

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7178 / 4344 / 634
Регистрация: 29.11.2010
Сообщений: 11,822
30.11.2012, 01:55     Проверить формат HH:MM:SS через string #2
Цитата Сообщение от klimentij Посмотреть сообщение
Нужно сделать через string.
Так даже не интересно. Тут пара строк с string.find.
Вот на сях с strtok куда увлекательнее.
klimentij
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 10
30.11.2012, 02:02  [ТС]     Проверить формат HH:MM:SS через string #3
Цитата Сообщение от MrGluck Посмотреть сообщение
Так даже не интересно. Тут пара строк с string.find.
Вот на сях с strtok куда увлекательнее.
Очень нужно! Завтра надо сдать работу, не могли бы помочь?
MrGluck
Модератор
Эксперт CЭксперт С++
7178 / 4344 / 634
Регистрация: 29.11.2010
Сообщений: 11,822
30.11.2012, 02:28     Проверить формат HH:MM:SS через string #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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 10:11     Проверить формат HH:MM:SS через string
Еще ссылки по теме:

Задачи по строкам. Решение желательно через string - C++
1. Дана строка, состоящая из русских слов разделенных пробелами(одним или несколькими). Вывести строку, содержащую эти же слова,...

Модификация объекта string через ссылку и указатель - C++
Создайте две функции: первая должна получать аргумент типа string*, вторая - srting&amp;. Каждая функция должна изменять объект string своим...

Сортировка массива типа string через указатели - C++
Итак, пытаюсь реализовать сортировку строкового массива. Почти все сделал, но встал на одном месте и никак не могу понять, как её решить. ...

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


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

Или воспользуйтесь поиском по форуму:
klimentij
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 10
30.11.2012, 10:11  [ТС]     Проверить формат HH:MM:SS через string #5
Большое спасибо!
Yandex
Объявления
30.11.2012, 10:11     Проверить формат HH:MM:SS через string
Ответ Создать тему
Опции темы

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