C++ String
C++ fournit les deux types de représentations de chaînes suivants :
- Chaîne de style C
- Le type de classe string introduit par C++
Chaîne de style C
C-style strings originated in the C language and continue to be supported in C++. A string is actually a one-dimensional character array,nulcaractère\0terminé par un caractère nul. Par conséquent, une chaîne terminée par un caractère nul contient les caractères qui composent la chaîne.
The following declaration and initialization creates aEXEMPLE. Comme un caractère nul est stocké à la fin du tableau, la taille du tableau de caractères est supérieure au motEXEMPLEIl a un caractère de plus.
char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};
Selon les règles d'initialisation de tableau, vous pouvez écrire l'instruction ci-dessus comme suit :
char site[] = "EXAMPLE";
Ce qui suit est la représentation en mémoire des chaînes définies en C/C++ :
Actually, you don't need to putnulcaractère à la fin de la constante de chaîne. Lors de l'initialisation du tableau, le compilateur C++ va automatiquement\0le placer à la fin de la chaîne. Essayons d'afficher la chaîne ci-dessus :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :
Example: EXAMPLE
C++ dispose d'un grand nombre de fonctions pour manipuler les chaînes terminées par un caractère nul :
| Numéro de série | Fonctions et objectif |
|---|---|
| 1 | strcpy(s1, s2); Copie la chaîne s2 dans la chaîne s1. |
| 2 | strcat(s1, s2); Concatène la chaîne s2 à la fin de la chaîne s1. La concaténation de chaînes peut aussi se faire avec des+nombres, par exemple : string str1 = "example"; string str2 = "google"; string str = str1 + str2; |
| 3 | strlen(s1); Renvoie la longueur de la chaîne s1. |
| 4 | strcmp(s1, s2); Si s1 et s2 sont identiques, renvoie 0 ; si s1<s2, la valeur de retour est inférieure à 0 ; si s1>s2, la valeur de retour est supérieure à 0. |
| 5 | strchr(s1, ch); Renvoie un pointeur vers la première occurrence du caractère ch dans la chaîne s1. |
| 6 | strstr(s1, s2); Renvoie un pointeur vers la première occurrence de la chaîne s2 dans la chaîne s1. |
L'exemple suivant utilise certaines des fonctions mentionnées ci-dessus :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :
strcpy( str3, str1) : example strcat( str1, str2): examplegoogle strlen(str1) : 12
La classe String en C++
La bibliothèque standard C++ fournitstringun type de classe qui prend en charge toutes les opérations ci-dessus et ajoute également de nombreuses fonctionnalités. Nous allons découvrir cette classe dans la bibliothèque standard C++, mais pour l'instant regardons d'abord l'exemple suivant :
Vous ne comprenez peut-être pas encore pleinement cet exemple, car jusqu'à présent nous n'avons pas abordé les classes et les objets. Pour l'instant, vous pouvez simplement le parcourir brièvement, puis y revenir plus tard pour le comprendre après avoir assimilé les concepts de la programmation orientée objet.
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :
str3 : example str1 + str2 : examplegoogle str3.size() : 12autres extensions