Controlla se la stringa è vuota in C++

Jinku Hu 12 ottobre 2023
  1. Usa il metodo integrato empty() per verificare se la stringa è vuota in C++
  2. Usa la funzione definita personalizzata con size per verificare se la stringa è vuota in C++
  3. Usa la funzione strlen() per verificare se la stringa è vuota in C++
Controlla se la stringa è vuota in C++

Questo articolo introdurrà più metodi su come verificare la presenza di una stringa vuota in C++.

Usa il metodo integrato empty() per verificare se la stringa è vuota in C++

La classe std::string ha un metodo incorporato empty() per controllare se la stringa data è vuota o meno. Questo metodo è di tipo bool e restituisce true quando l’oggetto non contiene caratteri. Il metodo empty() non accetta alcun argomento e implementa una funzione di complessità temporale costante.

Nota che anche se la stringa è inizializzata con una stringa letterale vuota - "", la funzione restituisce comunque il valore true. Pertanto, la funzione empty() controlla la dimensione della stringa e essenzialmente restituisce la valutazione dell’espressione - 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;
}

Produzione:

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

Usa la funzione definita personalizzata con size per verificare se la stringa è vuota in C++

Il metodo precedente potrebbe essere implementato dalla funzione definita dall’utente che accetta un singolo argomento stringa e controlla se è vuoto. Questa funzione rispecchierebbe il comportamento del metodo empty e restituirebbe un valore bool. L’esempio seguente mostra lo stesso esempio di codice con la funzione definita dall’utente checkEmptyString. Si noti che la funzione contiene solo un’istruzione poiché il tipo di ritorno dell’espressione di confronto sarebbe booleano, e possiamo passarlo direttamente alla parola chiave 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;
}

Produzione:

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

Usa la funzione strlen() per verificare se la stringa è vuota in C++

La funzione strlen() fa parte della libreria di stringhe C e può essere utilizzata per recuperare la dimensione della stringa in byte. Questo metodo potrebbe essere più flessibile sia per le stringhe di tipo string che per char* che possono apparire nella base del codice. strlen() accetta l’argomento const char* e calcola la lunghezza escludendo il carattere di terminazione \0.

Notare che la struttura del programma è simile ai metodi precedenti, poiché definiamo una funzione booleana separata e dichiariamo l’unico parametro che accetta come 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;
}

Produzione:

string value: This is a non-empty string
[ERROR] string is empty!
Autore: 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

Articolo correlato - C++ String