c++ string类判断字符串是否为空

string类是C++STL类之一,有很丰富的接口,判断string为空是常用操作。

判断string为空就是元素个数为0。

我一开始使用的是:

str == NULL

这是不正确的!!!因为,NULL一般只和指针比较或者赋给指针,string是类,传参进函数时str调用默认的构造函数已经初始化了,str已经是对象了,它不可能为NULL,也不能和NULL比较。

总的来说就是在不是对象时,可以使用NULL;在针对对象时,不可以使用NULL。

1. 使用string类的成员函数empty(),判断是否为空:

string str;
if(str.empty()){  // 为空成立
    ...
}

2. 使用size(),判断字符串长度,如果为0,则为空:

string str;
if(str.size() == 0){   // 为空成立
    ...
}

3. 与空串""比较,相等,则为空:

string str;
if(str == ""){   // 为空成立
    ...
}

以上方法中,empty函数是效率最高也是最常用的一种。

经验分享 程序员 微信小程序 职场和发展