HOWTO: Compare a CString to the Empty String
ID: Q111923
|
The information in this article applies to:
-
The Microsoft Foundation Classes (MFC), included with:
-
Microsoft Visual C++ for Windows, 16-bit edition, versions 1.0, 1.5, 1.51, 1.52
-
Microsoft Visual C++, 32-bit Editions, versions 1.0, 2.0, 2.1, 4.0, 5.0
SUMMARY
The correct way to test a CString to see whether it is empty (or not empty)
is to use the IsEmpty() member function as shown below:
CString x = "This is a sample CString";
if (x.IsEmpty())
AfxMessageBox("The CString is EMPTY");
else
AfxMessageBox("The CString is not EMPTY");
MORE INFORMATION
The CString member function IsEmpty() tests a CString for the empty
condition. The function returns nonzero if the string has zero length.
If the CString equality operators (==, !=) are used in an attempt to test
whether a CString is NULL, a general protection (GP) fault may occur. The
following code fragment demonstrates this:
CString x = "This is a sample CString";
if (x != NULL) // GP Fault for (x == NULL) condition, as well
AfxMessageBox("The CString is not EMPTY");
else
AfxMessageBox("The CString is EMPTY");
Because x is a CString object, not a pointer, it is inappropriate to
compare x to a null pointer.
Testing a CString against the empty string, as shown below, is allowed.
Because a temporary CString object is constructed, this method is less
efficient than calling IsEmpty():
CString x = "This is a sample CString";
if (x != "")
AfxMessageBox("The CString is not EMPTY");
else
AfxMessageBox("The CString is EMPTY");
Additional query words:
CString inequality 2.50 2.51 2.52 3.00 3.10 gpf NULL gp-fault
Keywords : kbnokeyword kbMFC kbVC
Version : WINDOWS:1.0,1.5,1.51,1.52; WINDOWS NT:1.0,2.0,2.1,4.0,5.0;
Platform : NT WINDOWS
Issue type : kbhowto