我有以下代码
std::string t = "11:05:47" (No spaces inside)
我想检查它是否有一个空的空间(它没有)所以我正在使用
unsigned present = t.find(" ");
if (present!=std::string::npos)
{
//Ends up in here
}
代码似乎认为字符串中有空格,对我可能做错了什么建议
以下是结果 present = 4294967295 t = 11:15:36
是否有可以帮助我这样做的升级库?有什么建议吗?
答案 0 :(得分:8)
请勿使用unsigned
。 std::string::find
会返回std::string::size_type
,通常为size_t
。
std::string::size_type present = t.find(" ");
if (present!=std::string::npos) {
}
正如其他人所指出的那样,您可以使用C ++ 11的auto
让编译器推断出present
的类型应该是什么:
auto present = t.find(" ");