21xrx.com
2024-12-28 06:08:53 Saturday
登录
文章检索 我的文章 写文章
C++如何判断字符串是否为空或者只包含空格?
2023-06-22 08:13:45 深夜i     --     --
C++ 字符串 判断 空格 为空

在使用C++编程时,判断字符串是否为空或者仅包含空格是一个比较常见的问题。这里介绍几种简单的方法供大家参考。

方法一:使用string类的empty()函数

判断字符串是否为空最简单的方法是使用string类的empty()函数。该函数用来判断字符串是否为空,如果是空字符串,则返回true,否则返回false。具体用法如下:


#include <string>

#include <iostream>

int main()

{

  std::string str1 = "";

  std::string str2 = "  ";

  

  if (str1.empty())

  

    std::cout << "str1 is empty" << std::endl;

  

  

  if (str2.empty())

  

    std::cout << "str2 is empty" << std::endl;

  

  

  return 0;

}

方法二:使用isspace()函数

如果想判断字符串是否仅包含空格,可以使用C++标准库中的isspace()函数。该函数用于判断是否是空格字符,包括空格、制表符、回车符等。具体用法如下:


#include <cctype>

#include <iostream>

bool isEmptyOrSpace(const std::string& str)

{

  for (int i = 0; i < str.length(); i++)

  {

    if (!isspace(str[i])) // 如果不是空格字符,则该字符串不为空

    

      return false;

    

  }

  

  return true; // 否则该字符串为空

}

int main()

{

  std::string str1 = "";

  std::string str2 = "  ";

  std::string str3 = "hello world";

  

  if (isEmptyOrSpace(str1))

  

    std::cout << "str1 is empty or only contains spaces" << std::endl;

  

  

  if (isEmptyOrSpace(str2))

  

    std::cout << "str2 is empty or only contains spaces" << std::endl;

  

  

  if (isEmptyOrSpace(str3))

  

    std::cout << "str3 is empty or only contains spaces" << std::endl;

  

  

  return 0;

}

方法三:使用正则表达式

如果你熟悉正则表达式的使用,那么也可以用正则表达式来判断字符串是否为空或仅包含空格。具体用法如下:


#include <regex>

#include <iostream>

bool isEmptyOrSpace(const std::string& str)

{

  std::regex reg("\\s*"); // 匹配0个或多个空格字符

  

  return std::regex_match(str, reg);

}

int main()

{

  std::string str1 = "";

  std::string str2 = "  ";

  std::string str3 = "hello world";

  

  if (isEmptyOrSpace(str1))

  

    std::cout << "str1 is empty or only contains spaces" << std::endl;

  

  

  if (isEmptyOrSpace(str2))

  

    std::cout << "str2 is empty or only contains spaces" << std::endl;

  

  

  if (isEmptyOrSpace(str3))

  

    std::cout << "str3 is empty or only contains spaces" << std::endl;

  

  

  return 0;

}

综上所述,判断字符串是否为空或只包含空格有多种方法,可以根据需求选择适合自己的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复