1

24時間を表す入力文字列があります。有効な入力は次のような文字列です。

7:04
07:4
7:4
07:04

そして、無効な入力文字列は明らかに。のようなものになります25:68。時刻形式を検証し、時刻が今日のものであると仮定して、エポック形式で時刻を解析する簡単な方法はありますか?ここで便利なブーストライブラリはありますか?

4

3 に答える 3

2

Unixライクなシステムで標準となっているstrptimeを使用してこれを行うことができます: http ://www.kernel.org/doc/man-pages/online/pages/man3/strptime.3.html

于 2013-02-17T14:09:39.973 に答える
2

2つのオプションがあります。

  1. 単純な正規表現またはboost::xpressive(私はそれがもっと好きです)。

  2. セミコロンの間の数値を取得し、それらを数値に変換してから、それらの値を確認します。このようなもの:

    string sTime("53:30");
    int iSemiColon = sTime.find(':');       
    if (atoi(sTime.substr(0, iSemiColon).c_str()) >= 24) return false;
    if (atoi(sTime.substr(iSemiColon + 1).c_str()) >= 60) return false;
    
于 2013-02-17T14:50:47.970 に答える
1

この回答を参照してください。STLに限定されていない場合はboost.Regex、検証部分に使用できますが、これは非常に単純な問題であるため、独自のソリューションを簡単に展開できます。

于 2013-02-17T14:10:38.317 に答える