如果使用a char*,我可以将其初始化为NULL,然后通过进行比较来检查它是否已设置.怎么做同样的事情std::string?如何检查字符串是否设置?
编辑:如果我设置的字符串也是空的怎么办?我是否必须使用额外的标志来检查是否std::string设置了?
GMa*_*ckG 106
用途empty():
std::string s;
if (s.empty())
// nothing in s
Run Code Online (Sandbox Code Playgroud)
Mic*_*urr 24
正如几个答案所指出的那样,std::string它的价值没有"零度"的概念.如果使用空字符串这样的值不够好(即,你需要区分没有字符的字符串和没有值的字符串),你可以使用a std::string*并将其设置为NULL或者a std::string适当的有效实例.
您可能希望使用某种智能指针类型(boost :: scoped_ptr或其他)来帮助管理std::string您设置指针的任何对象的生命周期.
Jam*_*lis 17
你不能; 至少与测试指针是否相同的方式不同NULL.
甲std::string对象总是初始化,并始终包含一个字符串; 默认情况下,其内容为空字符串("").
您可以测试空虚(使用s.size() == 0或s.empty()).