Comprueba si la cadena está vacía en C++
-
Usar el método incorporado
empty()
para comprobar si la cadena está vacía en C++ -
Use la función definida por el usuario con
size
para comprobar si la cadena está vacía en C++ -
Usa la función
strlen()
para comprobar 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!
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 FacebookArtículo relacionado - C++ String
- Encuentre el primer carácter repetido en una cadena en C++
- Encuentre la subcadena común más larga en C++
- Poner en mayúscula la primera letra de una cadena en C++
- Comparación de cadenas y caracteres en C++
- Eliminar el último carácter de una cadena en C++
- Obtener el último carácter de una cadena en C++