C++string文字列を特殊な複数文字で分割

1177 ワード

タスクに遭遇し、ユーザーの時間を比較し、差を与えます.stringフォーマットの時間をtime_に組み立てる必要がありますtタイプ.ユーザーの入力形式は「2014-11-10 9:09:32.1111」です.組み立てるために、私は彼らを全部分割しなければなりません.ほとんどの人が特定の文字で分割されていることがわかりましたが、複雑で効率が悪いと思います.そこで、参考までに1つ書いてみました.
#include
#include
#include
using namespace std;
vector split(string strTime)
{
    vector result;
    string temp("");
    strTime+='-';//       ,          vector
    for(size_t i = 0; i < strTime.size(); i++)
    {
        if(strTime[i] == '-' || strTime[i] == '.' || strTime[i] == ' ' ||strTime[i] == ':')
        {
            result.push_back(temp);
            temp = "";
        }
        else
        {
            temp += strTime[i];
        }
    }
    return result;
}

int main()
{
    string strtime="2014-11-10 14:55:40.123";
    vector result = split(strtime);
    for(size_t i = 0; i < result.size(); i++)
    {
        cout<

以上のようにして、1つのstringを1つの文字のセットで分割することができます.分割後はstruct tmの年月日など、他の構造に組み込むことができ、上述した分割後のフィールドで埋め込まれている.