CString : 查找字符串包含所有空格

CString : Find string contains all whitespaces

我正在尝试想出一个函数来查看给定的 CString 是否包含所有空格。

我在下面想出的那个似乎不起作用。有什么建议吗?

BOOL IsAllWhiteSpace(CString str)
{
    for (int i = 0; i < str.GetLength(); i++)
    {
        char letter = str.GetAt(i);
        if (letter != ' ')
        {
            return FALSE;
        }
    }
    return TRUE;
}

你应该解释一下这是什么意思 - "doesn't seem to work"

空字符串是错误的,而且它也不包括所有白色-space 字符:(0x09 – 0x0D 或 0x20)。以下是固定版本:

BOOL IsAllWhiteSpace(const CString& str)
{
  if (str.IsEmpty())
    return FALSE;
  for (int i = 0; i < str.GetLength(); i++)
  {
    char letter = str.GetAt(i);
    if (!_istspace(letter))
    {
      return FALSE;
    }
  }
  return TRUE;
}

您可以在一行中重写您的函数:

return str.TrimLeft().IsEmpty();