Développeurs
Compteur de caractères C++ : comptez les caractères d'une chaîne
Des exemples de code en C++ prêts à l'emploi pour compter les caractères : tous les caractères, les caractères sans espaces et le nombre de mots. Ainsi que des remarques importantes sur l'UTF-8. Vous pouvez aussi tester le comptage directement dans le navigateur.
Limite de caractères ou objectif
Compté avec les espaces. Changez la base de comptage avec l'interrupteur ci-dessous.
Limites de caractères par canal (caractères avec espaces)
Afficher l'analyse du texte
Mots les plus fréquents
- Saisissez du texte pour voir les mots les plus fréquents.
1. Tous les caractères d'une chaîne
La façon de base de compter les caractères en C++ est la méthode size() ou length() de la classe std::string. Elles renvoient la longueur de la chaîne en octets. Dans un texte purement ASCII, le nombre d'octets correspond au nombre de caractères.
// Tous les caractères (en octets)
#include <iostream>
#include <string>
int main() {
std::string texte;
std::getline(std::cin, texte);
std::cout << "Caracteres : " << texte.size() << "\n";
return 0;
}
2. Caractères sans espaces
Lorsque vous voulez compter uniquement les caractères réels, parcourez la chaîne et ignorez les espaces avec la fonction std::isspace. Vous obtenez ainsi l'équivalent de la valeur sans espaces du compteur de la page.
// Caracteres sans espaces
#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 << "Sans espaces : " << n << "\n";
return 0;
}
3. Nombre de mots
Les mots se comptent facilement avec un flux std::istringstream, qui découpe le texte en mots au niveau des espaces.
// Nombre de mots
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string ligne; std::getline(std::cin, ligne);
std::istringstream iss(ligne);
std::string mot; int mots = 0;
while (iss >> mot) mots++;
std::cout << "Mots : " << mots << "\n";
return 0;
}
UTF-8 : les octets ne sont pas les caractères visibles
C'est le principal piège avec le texte non ASCII. std::string::size() renvoie le nombre d'octets, pas le nombre de caractères visibles. En codage UTF-8, des lettres comme é, à et ç occupent deux octets et de nombreux emojis jusqu'à quatre. C'est pourquoi le mot "café" peut sembler faire cinq octets alors qu'il ne compte que quatre caractères visibles.
Souvenez-vous : si vous voulez compter les caractères visibles d'un texte UTF-8, vous devez interpréter le codage – par exemple ne compter que les octets qui ne commencent pas par le motif de bits 10xxxxxx. Le compteur du navigateur ci-dessus utilise un comptage fondé sur les graphèmes, ce qui vous permet de comparer son résultat à votre code.
Comptages récents
Les comptages sont enregistrés uniquement dans votre propre navigateur pour que vous puissiez y revenir plus tard. Rien n'est jamais envoyé à un serveur.
FAQ
Foire aux questions
Comment compter les caractères d'une chaîne en C++ ?
La façon la plus simple est d'utiliser la méthode size() ou length() de la classe std::string. Elles renvoient la longueur de la chaîne en octets. Dans un texte ASCII, cela correspond au nombre de caractères, mais dans un texte UTF-8 les lettres accentuées et les emojis peuvent occuper plusieurs octets.
Comment compter les caractères sans espaces ?
Parcourez la chaîne et ignorez les espaces, par exemple en vérifiant isspace(). Vous pouvez aussi supprimer uniquement les espaces normaux ou tous les espaces, selon vos besoins.
Pourquoi les caractères accentués sont-ils mal comptés ?
std::string mesure la longueur en octets. En UTF-8, une lettre accentuée occupe deux octets, si bien que le nombre de caractères visibles et le nombre d'octets diffèrent. Pour compter les caractères visibles, il faut un traitement qui tient compte du codage.
Puis-je essayer le comptage sans compilateur ?
Oui. Collez la chaîne dans le compteur ci-dessus et vous verrez les caractères avec et sans espaces aussitôt dans le navigateur. Vous pouvez ainsi comparer le résultat à la sortie de votre code C++.
Autres compteurs et guides
Continuez avec ces outils
Outils et guides liés en interne qui complètent cette page.