在c++中检查' aStr == null '

checking `aStr == null` in C++

本文关键字:c++ null aStr 检查      更新时间:2023-10-16

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

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

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

if (a == NULL)不能工作,因为您正在将std::string与不可能的整数进行比较。如果你想创建一个空字符串并测试是否为空,只需执行:

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

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

从这里看,第一行末尾的冒号而不是分号肯定会造成麻烦。我不确定是不是这样,但我要从这里开始。

初始化为一个带双引号的空字符串,并检查字符串是否为空。还是必须使用NULL?

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