Für Entwickler
Zeichenzähler C++: zähle die Zeichen einer Zeichenkette
Fertige C++-Codebeispiele zum Zählen von Zeichen: alle Zeichen, Zeichen ohne Leerzeichen und die Wortzahl. Dazu wichtige Hinweise zu UTF-8. Du kannst die Zählung auch direkt im Browser testen.
Zeichenlimit oder Ziel
Mit Leerzeichen gezählt. Ändere die Zählgrundlage mit dem Schalter unten.
Zeichenlimits pro Kanal (Zeichen mit Leerzeichen)
Textanalyse anzeigen
Häufigste Wörter
- Schreibe Text, um die häufigsten Wörter zu sehen.
1. Alle Zeichen einer Zeichenkette
Die grundlegende Art, Zeichen in C++ zu zählen, ist die Methode size() oder length() der Klasse std::string. Sie geben die Länge der Zeichenkette in Bytes zurück. Bei reinem ASCII-Text entspricht die Byteanzahl der Anzahl der Zeichen.
// Alle Zeichen (in Bytes)
#include <iostream>
#include <string>
int main() {
std::string text;
std::getline(std::cin, text);
std::cout << "Zeichen: " << text.size() << "\n";
return 0;
}
2. Zeichen ohne Leerzeichen
Wenn du nur die eigentlichen Zeichen zählen willst, durchlaufe die Zeichenkette und überspringe die Leerräume mit der Funktion std::isspace. So erhältst du das Gegenstück zum Wert ohne Leerzeichen des Zählers auf dieser Seite.
// Zeichen ohne Leerzeichen
#include <iostream>
#include <string>
#include <cctype>
int main() {
std::string t; std::getline(std::cin, t);
int n = 0;
for (unsigned char c : t)
if (!std::isspace(c)) n++;
std::cout << "Ohne Leerzeichen: " << n << "\n";
return 0;
}
3. Wortzahl
Die Wörter lassen sich bequem mit einem std::istringstream-Strom zählen, der den Text an den Leerzeichen in Wörter zerlegt.
// Wortzahl
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string zeile; std::getline(std::cin, zeile);
std::istringstream iss(zeile);
std::string wort; int woerter = 0;
while (iss >> wort) woerter++;
std::cout << "Woerter: " << woerter << "\n";
return 0;
}
UTF-8: Bytes sind nicht dasselbe wie sichtbare Zeichen
Das ist die wichtigste Falle bei nicht-ASCII-Text. std::string::size() gibt die Byteanzahl zurück, nicht die Anzahl der sichtbaren Zeichen. In der UTF-8-Kodierung belegen Buchstaben wie ä, ö und ü zwei Bytes und viele Emojis sogar vier. Deshalb kann das Wort "Größe" nach sechs Bytes aussehen, obwohl es nur fünf sichtbare Zeichen hat.
Denk daran: Wenn du die sichtbaren Zeichen eines UTF-8-Textes zählen willst, musst du die Kodierung interpretieren – zum Beispiel nur die Bytes zählen, die nicht mit dem Bitmuster 10xxxxxx beginnen. Der Browser-Zähler oben verwendet eine graphembasierte Zählung, sodass du sein Ergebnis mit deinem Code vergleichen kannst.
Letzte Zählungen
Die Zählungen werden nur in deinem eigenen Browser gespeichert, damit du später darauf zurückgreifen kannst. Nichts wird an einen Server gesendet.
FAQ
Häufig gestellte Fragen
Wie zähle ich Zeichen einer Zeichenkette in C++?
Am einfachsten verwendest du die Methode size() oder length() der Klasse std::string. Sie geben die Länge der Zeichenkette in Bytes zurück. Bei ASCII-Text entspricht das der Anzahl der Zeichen, aber bei UTF-8-Text können Umlaute und Emojis mehrere Bytes belegen.
Wie zähle ich Zeichen ohne Leerzeichen?
Durchlaufe die Zeichenkette und überspringe die Leerzeichen, zum Beispiel durch Prüfen mit isspace(). Du kannst auch nur die normalen Leerzeichen oder alle Leerräume entfernen, je nach Bedarf.
Warum werden Umlaute falsch gezählt?
std::string misst die Länge in Bytes. In UTF-8 belegt ein Umlaut zwei Bytes, deshalb unterscheiden sich die Anzahl der sichtbaren Zeichen und die Byteanzahl. Um die sichtbaren Zeichen zu zählen, ist eine Verarbeitung nötig, die die Kodierung berücksichtigt.
Kann ich die Zählung ohne Compiler ausprobieren?
Ja. Füge die Zeichenkette in den Zähler oben ein, und du siehst die Zeichen mit und ohne Leerzeichen sofort im Browser. So kannst du das Ergebnis mit der Ausgabe deines C++-Codes vergleichen.
Weitere Zähler und Ratgeber
Weiter zu diesen Werkzeugen
Intern verlinkte Werkzeuge und Ratgeber, die diese Seite ergänzen.