在C ++中检查`aStr == null`

时间:2014-07-01 20:34:27

标签: c++

我不明白为什么以下代码会给我一个编译错误:

string a = NULL:
if (a == NULL)        <<<<<<<<<<<<<<<<<< something is wrong with this line????
{ /* do something */ }

这给出了: error: no match for ‘operator!=’ in ‘a != 0l’

4 个答案:

答案 0 :(得分:2)

if (a == NULL)无法正常工作,因为您要将std::string与不可能的整数进行比较。如果你想创建一个空字符串并测试空虚,请执行以下操作:

string a;
if (a.empty())
{ /* do something */ }

答案 1 :(得分:0)

C ++中的

string与C中的字符串不同。您需要将字符串与字符串进行比较a == string ("")

答案 2 :(得分:0)

仅仅从这一点来看,第一行末尾的冒号而不是分号肯定会在那里抛出一把扳手。不确定是不是,但我会从那里开始。

答案 3 :(得分:0)

只需初始化为带双引号的空字符串,并检查字符串是否为空。 或者是否必须使用NULL?

string a = "";
if (a == "")
{   /* dosomething */ }