Comprueba si la cadena está vacía en C++

Jinku Hu 12 octubre 2023
  1. Usar el método incorporado empty() para comprobar si la cadena está vacía en C++
  2. Use la función definida por el usuario con size para comprobar si la cadena está vacía en C++
  3. Usa la función strlen() para comprobar si la cadena está vacía en C++
Comprueba si la cadena está vacía en C++

Este artículo presentará múltiples métodos sobre cómo comprobar si una cadena está vacía en C++.

Usar el método incorporado empty() para comprobar si la cadena está vacía en C++

La clase std::string tiene un método incorporado empty() para comprobar si la cadena dada está vacía o no. Este método es de tipo bool y devuelve true cuando el objeto no contiene caracteres. El método empty() no toma ningún argumento e implementa una función de complejidad de tiempo constante.

Observe que incluso si la string se inicializa con un literal de cadena vacía - "", la función todavía devuelve el valor true. Así, la función empty() comprueba el tamaño de la cadena y esencialmente devuelve la evaluación de la expresión - string.size() == 0.

#include <cstring>
#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  string string1("This is a non-empty string");
  string string2;

  string1.empty() ? cout << "[ERROR] string is empty!" << endl
                  : cout << "string value: " << string1 << endl;

  string2.empty() ? cout << "[ERROR] string is empty!" << endl
                  : cout << "string value: " << string1 << endl;

  return EXIT_SUCCESS;
}

Producción :

string value: This is a non-empty string
[ERROR] string is empty!

Use la función definida por el usuario con size para comprobar si la cadena está vacía en C++

El método anterior podría ser implementado por la función definida por el usuario que toma un solo argumento de cadena y comprueba si está vacío. Esta función reflejaría el comportamiento del método empty y devolvería un valor bool. El siguiente ejemplo muestra el mismo ejemplo de código con la función definida por el usuario checkEmptyString. Fíjate en que la función contiene sólo una declaración, ya que el tipo de retorno de la expresión de comparación sería booleana, y podemos pasarla directamente a la palabra clave return.

#include <cstring>
#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

bool checkEmptyString(const string &s) { return s.size() == 0; }

int main() {
  string string1("This is a non-empty string");
  string string2;

  checkEmptyString(string1) ? cout << "[ERROR] string is empty!" << endl
                            : cout << "string value: " << string1 << endl;

  checkEmptyString(string2) ? cout << "[ERROR] string is empty!" << endl
                            : cout << "string value: " << string1 << endl;

  return EXIT_SUCCESS;
}

Producción :

string value: This is a non-empty string
[ERROR] string is empty!

Usa la función strlen() para comprobar si la cadena está vacía en C++

La función strlen() es parte de la biblioteca de cadenas de C y puede ser utilizada para recuperar el tamaño de la cadena en bytes. Este método podría ser más flexible tanto para las cadenas de tipo string y char* que puedan aparecer en la base de código. strlen toma el argumento const char* y calcula la longitud excluyendo el carácter final \0.

Observe que la estructura del programa es similar a los métodos anteriores, ya que definimos una función booleana separada y declaramos el único parámetro que toma como const char*.

#include <cstring>
#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

bool checkEmptyString(const char *s) { return strlen(s) == 0; }

int main() {
  string string1("This is a non-empty string");
  string string2;

  checkEmptyString(string1.data())
      ? cout << "[ERROR] string is empty!" << endl
      : cout << "string value: " << string1 << endl;

  checkEmptyString(string2.data())
      ? cout << "[ERROR] string is empty!" << endl
      : cout << "string value: " << string1 << endl;

  return EXIT_SUCCESS;
}

Producción :

string value: This is a non-empty string
[ERROR] string is empty!
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - C++ String