Vérifier si la chaîne est vide en C++

Jinku Hu 12 octobre 2023
  1. Utilisez la méthode intégrée empty() pour vérifier si une chaîne est vide en C++
  2. Utiliser une fonction personnalisée avec size pour vérifier si la chaîne est vide en C++
  3. Utilisez la fonction strlen() pour vérifier si la chaîne est vide en C++
Vérifier si la chaîne est vide en C++

Cet article présente plusieurs méthodes pour vérifier la présence d’une chaîne vide en C++.

Utilisez la méthode intégrée empty() pour vérifier si une chaîne est vide en C++

La classe std::string a une méthode intégrée empty() pour vérifier si la chaîne donnée est vide ou non. Cette méthode est de type bool et retourne true lorsque l’objet ne contient pas de caractères. La méthode empty() ne prend aucun argument et implémente une fonction de complexité à temps constant.

Notez que même si la chaîne est initialisée avec une chaîne vide littérale - "", la fonction retourne toujours la valeur true. Ainsi, la fonction empty vérifie la taille de la chaîne et retourne essentiellement l’évaluation de l’expression - 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;
}

Production :

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

Utiliser une fonction personnalisée avec size pour vérifier si la chaîne est vide en C++

La méthode précédente pouvait être mise en œuvre par la fonction définie par l’utilisateur qui prend un seul argument string et vérifie s’il est vide. Cette fonction reflèterait le comportement de la méthode empty et retournerait une valeur bool. L’exemple suivant montre le même exemple de code avec la fonction définie par l’utilisateur checkEmptyString. Remarquez que la fonction ne contient qu’une seule déclaration car le type de retour de l’expression de comparaison serait booléen, et nous pouvons directement le passer au mot-clé 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;
}

Production :

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

Utilisez la fonction strlen() pour vérifier si la chaîne est vide en C++

La fonction strlen() fait partie de la bibliothèque de chaînes de caractères du C et peut être utilisée pour récupérer la taille de la chaîne en octets. Cette méthode pourrait être plus flexible pour les chaînes de type string et char* qui peuvent apparaître dans la base de code. strlen prend l’argument const char* et calcule la longueur en excluant le caractère de terminaison \0.

Notez que la structure du programme est similaire aux méthodes précédentes, car nous définissons une fonction booléenne séparée et déclarons le seul paramètre qu’elle prend comme 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;
}

Production :

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

Article connexe - C++ String