Normalement, un programmeur peut récupérer la longueur d'une phrase (ou une chaîne ) dans tout + + programme par appels méthode C " de longueur ()" de la chaîne. Toutefois , les chaînes comme implémenté en C + + ne sont pas toujours disponibles , et les programmeurs n'ont pas eu accès à des méthodes prêtes à l'emploi telles que la longueur (). Compter la longueur d'une chaîne sans utiliser cette méthode implique construit en chaîne de la compréhension, des tableaux de caractères de style C , et comment itérer sur eux. C + + et C Strings Strings
En C + + , le type intégré "string" de données représente des phrases , des phrases ou des mots. Cependant, le type de données de chaîne représente réellement ce que les programmeurs appellent une chaîne "c- style". Dans la langue originale C , les programmeurs stockés phrases que les collections (ou tableaux) de caractères. Ainsi, alors que dans C + + , une déclaration de variable phrase est:
string str = "Bonjour" ;
en C , la même déclaration ressemble :
char str [50 ] = "Bonjour" ;
Où " str" représente un tableau de 50 caractères. En outre, puisque les chaînes de style C sont tout simplement des tableaux, ils finissent tous avec un caractère de fin Null ( "\\ 0" ) qui signifie la fin de la chaîne .
Le " c_str () " Method
la chose intéressante à propos des chaînes en C + + , c'est qu'ils sont une classe et une classe contient des méthodes pour effectuer des travaux sur la corde . Une de ces méthodes ( " c_str () ") renvoie une chaîne de type C qui représente la chaîne C + + . Cela signifie que la valeur de retour finira comme un tableau de caractères contenant les caractères de la chaîne , y compris le caractère de fin null .
Copie du C cordes
pour faire quelque chose avec la chaîne de style C extraite de c_str () , le programmeur doit le mettre dans un tableau de caractères. Cela nécessite la méthode « strcpy », qui permet de copier un tableau de caractères à l'autre:
# include
# include
# include < ; iostream > Photos
using namespace std ;
string str = " une chaîne" ;
caractères str2 [50] ;
strcpy ( str2 , str . c_str ())
maintenant, la représentation de chaîne C- style de " str" va copier dans le tableau de caractères " str2 " (y compris zéro caractères).
Compter le caractères
maintenant que le programmeur a une copie de la matrice de la chaîne, y compris le caractère nul qui informera le programmeur lorsque la chaîne se termine , cela devient une question de personnages simplement comptage jusqu'à ce que le programme touche le nul caractère :
int i = 0;
while (! str2 [i] = '\\ 0' ) {
i + +
}
cout << i + 1;
la boucle "while" vérifie chaque personnage dès le début ( la position du caractère 0e ) jusqu'à atteindre le caractère nul . Ensuite, le programme imprime i +1 ( car l'index commence à 0 , et la position de caractère nul n'est pas compté ) qui se traduit par une valeur de rendement de 8 .