Jam*_*vec 3 c++builder unicode-string c++builder-xe6
我正在使用C++ Builder XE6.我得到一个UnicodeString参数,我想检查字符串是否设置为NULL,而不是一个空字符串.
我试图做一些简单的比较,看看param是否为null,但似乎失败了.我正在使用==似乎没有工作的运算符,这让我觉得它超载了.
我试过了:
if (searchString == NULL)
Run Code Online (Sandbox Code Playgroud)
在调试器视图中,它显示{ NULL }局部变量的值.如果我将变量添加到监视列表,则表明它具有"数据"属性NULL.

关于如何正确进行比较的任何想法?
没有NULL价值的东西UnicodeString.字符串是一系列字符,但它NULL是一个指针(很好 - 实际上它是一个计算为int的宏0,但如果你的编译器不支持,它应该用于指示空指针nullptr).
在内部,当字符串为空时,data成员UnicodeString为NULL,当字符串具有至少1个字符时,成员为非NULL.
要检查字符串是否为空,请使用IsEmpty()方法检查data成员是否为NULL.只有一个空状态; 像某些语言一样,"空"和"空"之间没有区别.
您在调试器中看到的值是内部data成员UnicodeString,它不是UnicodeString接口的一部分.当您在调试器中看到NULL时,您应该将其视为空字符串.
| 归档时间: |
|
| 查看次数: |
1651 次 |
| 最近记录: |