gpt4 book ai didi

c++builder - XE6 如何检查 UnicodeString 是否为 null?

转载 作者:行者123 更新时间:2023-12-03 01:12:44 24 4
gpt4 key购买 nike

我正在使用C++ Builder XE6。我收到一个 UnicodeString 作为参数,我希望检查该字符串是否设置为 NULL,而不是空字符串。

我尝试做一些简单的比较来查看参数是否为空,但似乎失败了。我正在使用 == 运算符,但它似乎不起作用,这让我认为它过载了。

我已经尝试过:

if (searchString == NULL)

在调试器 View 中,它显示局部变量中的{ NULL } 值。如果我将变量添加到监视列表,则它显示它具有“Data”属性,即 NULL

enter image description here

关于如何正确进行比较有什么想法吗?

最佳答案

UnicodeString 不存在 NULL 值。字符串是一系列字符,但 NULL 是一个指针(好吧 - 实际上它是一个计算结果为 int 的宏,0,但它应该被使用如果您的编译器不支持 nullptr 则指示空指针)。

在内部,当字符串为空时,UnicodeStringdata 成员为 NULL,当字符串至少有 1 个字符时,该成员为非 NULL。

要检查字符串是否为空,请使用 IsEmpty() 方法,该方法检查 data 成员是否为 NULL。只有一种空状态;像某些语言一样,“空”和“空”之间没有区别。

您在调试器中看到的值是 UnicodeString 的内部 data 成员,它不是 UnicodeString 接口(interface)的一部分。当您在调试器中看到 NULL 时,您应该将其视为空字符串。

关于c++builder - XE6 如何检查 UnicodeString 是否为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25294762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com