Prüfen, ob String leer ist in C++
-
Verwenden Sie die eingebaute Methode
empty()
, um zu prüfen, ob eine Zeichenkette in C++ leer ist -
Benutzerdefinierte Funktion mit
size
verwenden, um zu prüfen, ob String leer ist in C++ -
Verwenden der Funktion
strlen()
zur Prüfung, ob eine Zeichenkette leer ist, in C++
Dieser Artikel stellt mehrere Methoden vor, wie man in C++ auf eine leere Zeichenkette prüfen kann.
Verwenden Sie die eingebaute Methode empty()
, um zu prüfen, ob eine Zeichenkette in C++ leer ist
Die Klasse std::string
hat eine eingebaute Methode empty()
, um zu prüfen, ob die angegebene Zeichenkette leer ist oder nicht. Diese Methode ist vom Typ bool
und gibt true
zurück, wenn das Objekt keine Zeichen enthält. Die Methode empty()
nimmt kein Argument entgegen und implementiert eine Funktion mit konstanter Zeitkomplexität.
Beachten Sie, dass die Funktion auch dann den Wert true
zurückgibt, wenn der String
mit einem leeren String-Literal - ""
- initialisiert wird. Die Funktion empty
prüft also die Größe der Zeichenkette und gibt im Wesentlichen die Auswertung des Ausdrucks zurück - 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;
}
Ausgabe:
string value: This is a non-empty string
[ERROR] string is empty!
Benutzerdefinierte Funktion mit size
verwenden, um zu prüfen, ob String leer ist in C++
Die vorherige Methode könnte durch eine benutzerdefinierte Funktion implementiert werden, die ein einzelnes Argument string
annimmt und prüft, ob es leer ist. Diese Funktion würde das Verhalten der Methode empty
widerspiegeln und einen bool
-Wert zurückgeben. Das folgende Beispiel demonstriert das gleiche Codebeispiel mit der benutzerdefinierten Funktion checkEmptyString
. Beachten Sie, dass die Funktion nur eine Anweisung enthält, da der Rückgabetyp des Vergleichsausdrucks “boolean” wäre, und wir diesen direkt an das Schlüsselwort return
übergeben können.
#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;
}
Ausgabe:
string value: This is a non-empty string
[ERROR] string is empty!
Verwenden der Funktion strlen()
zur Prüfung, ob eine Zeichenkette leer ist, in C++
Die Funktion strlen()
ist Teil der C-String-Bibliothek und kann verwendet werden, um die Größe des Strings in Bytes zu ermitteln. Diese Methode kann sowohl für Strings vom Typ string
als auch für Strings vom Typ char*
, die in der Codebasis vorkommen können, flexibler sein. strlen
nimmt das Argument const char*
und berechnet die Länge ohne das abschließende Zeichen \0
.
Beachten Sie, dass die Struktur des Programms ähnlich wie bei den vorherigen Methoden ist, da wir eine separate boolesche Funktion definieren und den einzigen Parameter, den sie annimmt, als const char*
deklarieren.
#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;
}
Ausgabe:
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 FacebookVerwandter Artikel - C++ String
- Finden Sie das erste sich wiederholende Zeichen in einer Zeichenfolge in C++
- Finden Sie die längste gemeinsame Teilzeichenfolge in C++
- Großschreiben des ersten Buchstabens einer Zeichenfolge in C++
- Vergleich von String und Character in C++
- Entfernen Sie das letzte Zeichen aus einer Zeichenkette in C++
- Abrufen des letzten Zeichens einer Zeichenkette in C++