1

次のコードがあります

std::string t = "11:05:47"  (No spaces inside)

空のスペースがあるかどうかを確認したいので(そうではありません)、使用しています

       unsigned present = t.find(" ");
       if (present!=std::string::npos)
       {
             //Ends up in here
       }

コードは、文字列内に空白があると考えているようです。私が間違っている可能性があることについての提案

現在の結果は次のとおりです = 4294967295 t = 11:15:36

これを行うのに役立つブーストライブラリはありますか? 助言がありますか ?

4

1 に答える 1

8

使用しないでくださいunsigned。は、通常は をstd::string::find返します。std::string::size_typesize_t

std::string::size_type present = t.find(" ");
if (present!=std::string::npos) {

}

他の人が指摘したように、C++ 11 を使用autoして、コンパイラに次の型を推測させることができpresentます。

auto present = t.find(" ");
于 2013-04-02T15:36:08.810 に答える