什么是C ++中.NET的String.IsNullOrWhiteSpace的等价物?

时间:2014-01-16 18:01:56

标签: c++

我知道这是一个非常容易手动检查的东西,但是在C ++中是否有一个开箱即用的推荐方法来检查std :: string是否为空或只包含空白字符?

如果标准库没有这个,那么还有其他库吗?

2 个答案:

答案 0 :(得分:3)

最简单的答案:

bool
isNullOrWhiteSpace( std::string const& str )
{
    return std::find_if(
            str.begin(),
            str.end(),
            []( unsigned char ch ) { return !isspace( ch ); } )
        == str.end();
}

但它可能不是很有用;这取决于全球 locale,并且不会处理一些最常见的编码 (如UTF-8)。

答案 1 :(得分:0)

我不相信有一个标准的,但写起来相当容易

bool isNullOrWhiteSpace(const char* c) {
   if (!c) { 
     return true;
   }
   while (*c) {
     if (!isspace(static_cast<unsigned char>(*c))) {
       return false;
     }
     c++;
   }
   return true;
}