我知道这是一个非常容易手动检查的东西,但是在C ++中是否有一个开箱即用的推荐方法来检查std :: string是否为空或只包含空白字符?
如果标准库没有这个,那么还有其他库吗?
答案 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;
}