Verificar se a string está vazia em C++

Jinku Hu 12 outubro 2023
  1. Utilizar o Método Integrado empty() para verificar se a string está vazia em C++
  2. Use a função definida pelo cliente com size para verificar se a string está vazia em C++
  3. Use a função strlen() para verificar se a string está vazia em C++
Verificar se a string está vazia em C++

Este artigo introduzirá múltiplos métodos sobre como verificar a existência de um string vazio em C++.

Utilizar o Método Integrado empty() para verificar se a string está vazia em C++

A classe std::string tem um método integrado empty() para verificar se a string dada está vazia ou não. Este método é do tipo bool e retorna true quando o objecto não contém caracteres. O método empty() não aceita qualquer argumento e implementa uma função de complexidade temporal constante.

Note-se que mesmo que a função string seja inicializada com uma string vazia literal - "", a função ainda retorna o valor true. Assim, a função empty() verifica o tamanho da string e retorna essencialmente a avaliação da expressão - 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;
}

Resultado:

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

Use a função definida pelo cliente com size para verificar se a string está vazia em C++

O método anterior poderia ser implementado através da função definida pelo utilizador, que toma um único argumento de string e verifica se está vazio. Esta função espelharia o comportamento do método empty e devolveria um valor bool. O exemplo seguinte demonstra o mesmo exemplo de código com a função checkEmptyString personalizada. Note que a função contém apenas uma declaração como o tipo de retorno da expressão de comparação seria booleano, e podemos passá-la directamente para a palavra-chave 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;
}

Resultado:

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

Use a função strlen() para verificar se a string está vazia em C++

A função strlen() faz parte da biblioteca de strings C e pode ser utilizada para recuperar o tamanho da string em bytes. Este método poderia ser mais flexível tanto para strings do tipo string como char* que possam surgir na base de código. O strlen toma o argumento const char* e calcula o comprimento excluindo o carácter terminante \0.

Note-se que a estrutura do programa é semelhante aos métodos anteriores, pois definimos uma função booleana separada e declaramos o ú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;
}

Resultado:

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

Artigo relacionado - C++ String