Rechercher la longueur d'une chaîne en C++
-
Utilisez la fonction
length
pour trouver la longueur d’une chaîne en C++ -
Utilisez la fonction
size
pour trouver la longueur d’une chaîne en C++ -
Utilisez la boucle
while
pour trouver la longueur d’une chaîne en C++ -
Utilisez la fonction
std::strlen
pour rechercher la longueur d’une chaîne en C++
Cet article explique plusieurs méthodes de recherche de la longueur d’une chaîne en C++.
Utilisez la fonction length
pour trouver la longueur d’une chaîne en C++
La bibliothèque standard C++ fournit la classe std::basic_string
pour augmenter les séquences de type char
et implémenter une structure générique pour stocker et manipuler ces données. Cependant, la plupart des gens sont plus familiers avec le type std::string
qui est lui-même un alias de type pour std::basic_string<char>
. std::string
fournit la fonction intégrée length
pour récupérer la longueur de la séquence char
stockée.
#include <cstring>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char *argv[]) {
string str1 = "this is random string oiwaoj";
cout << "string: " << str1 << endl;
cout << "length: " << str1.length() << endl;
exit(EXIT_SUCCESS);
}
Production:
string: this is random string oiwaoj
length: 28
Utilisez la fonction size
pour trouver la longueur d’une chaîne en C++
Une autre fonction intégrée incluse dans la classe std::string
est size
, qui se comporte de la même manière que la méthode précédente. Il ne prend aucun argument et renvoie le nombre d’éléments char
dans l’objet string.
#include <cstring>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char *argv[]) {
string str1 = "this is random string oiwaoj";
cout << "string: " << str1 << endl;
cout << "length: " << str1.size() << endl;
exit(EXIT_SUCCESS);
}
Production:
string: this is random string oiwaoj
length: 28
Utilisez la boucle while
pour trouver la longueur d’une chaîne en C++
Alternativement, on peut implémenter sa propre fonction pour calculer la longueur de la chaîne. Dans ce cas, nous utilisons la boucle while
pour parcourir la chaîne comme une séquence char
et incrémenter le compteur d’un à chaque itération. Notez que la fonction prend char
comme argument, et que la méthode c_str
est appelée pour récupérer ce pointeur dans la fonction principale. La boucle s’arrête lorsque la valeur du pointeur déréférencé est égale à 0
, et l’implémentation de chaîne terminée par null garantit cela.
#include <cstring>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::string;
size_t lengthOfString(const char *s) {
size_t size = 0;
while (*s) {
size += 1;
s += 1;
}
return size;
}
int main(int argc, char *argv[]) {
string str1 = "this is random string oiwaoj";
cout << "string: " << str1 << endl;
cout << "length: " << lengthOfString(str1.c_str()) << endl;
exit(EXIT_SUCCESS);
}
Production:
string: this is random string oiwaoj
length: 28
Utilisez la fonction std::strlen
pour rechercher la longueur d’une chaîne en C++
Enfin, on peut recourir à la fonction de bibliothèque de chaînes C à l’ancienne strlen
, qui prend un seul argument const char*
comme fonction personnalisée - lengthOfString
. Ces deux dernières méthodes peuvent être défectueuses lorsqu’elles sont appelées sur des séquences char
qui ne se terminent pas par un octet nul, car elles pourraient accéder à la mémoire hors limites pendant la traversée.
#include <cstring>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char *argv[]) {
string str1 = "this is random string oiwaoj";
cout << "string: " << str1 << endl;
cout << "length: " << std::strlen(str1.c_str()) << endl;
exit(EXIT_SUCCESS);
}
Production:
string: this is random string oiwaoj
length: 28
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++