Vérifier si la chaîne est vide en C++
-
Utilisez la méthode intégrée
empty()
pour vérifier si une chaîne est vide en C++ -
Utiliser une fonction personnalisée avec
size
pour vérifier si la chaîne est vide en C++ -
Utilisez la fonction
strlen()
pour 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!
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 FacebookArticle connexe - C++ String
- Comparaison de chaîne et de caractère en C++
- Supprimer le dernier caractère d'une chaîne en C++
- Obtenir le dernier caractère d'une chaîne en C++
- Différences entre l'opérateur sizeof et la fonction strlen pour les chaînes en C++
- Effacer la chaîne en C++
- Imprimer toutes les permutations de la chaîne en C++