C String

En langage C, les chaînes de caractères utilisent en réalité le caractère nul\0Le tableau de caractères unidimensionnel de fin. Par conséquent,\0est utilisé pour marquer la fin d'une chaîne.

Caractère nul) également appelé terminateur, abrégéNUL, est une valeur numérique de0caractère de contrôle,\0est un caractère d'échappement, ce qui signifie dire au compilateur que ce n'est pas un caractère0, mais plutôt un caractère nul.

La déclaration et l'initialisation suivantes créent uneEXAMPLEchaîne. Comme le caractère nul est stocké à la fin du tableau,\0, donc la taille du tableau de caractères est supérieure d'un à celle du motEXAMPLEnombre de caractères.

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++ :

C/C++ 中的字符串表示

En réalité, vous n'avez pas besoin de placernullLe caractère est placé à la fin de la constante de chaîne. Le compilateur C, lors de l'initialisation du tableau, ajoutera automatiquement\0à la fin de la chaîne. Essayons d'afficher la chaîne ci-dessus :

Exemple

#include <stdio.h> int main () { char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'}; printf("Tutoriel pour débutants : %s\n", site ); return 0; }

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

Example: EXAMPLE

C dispose d'un grand nombre de fonctions pour manipuler les chaînes de caractères :

Numéro de sérieFonction et objectif
1strcpy(s1, s2);
Copie la chaîne s2 dans la chaîne s1.
2strcat(s1, s2);
Concatène la chaîne s2 à la fin de la chaîne s1.
3strlen(s1);
Renvoie la longueur de la chaîne s1.
4strcmp(s1, s2);
Si s1 et s2 sont identiques, renvoie 0 ; si s1<s2, renvoie une valeur inférieure à 0 ; si s1>s2, renvoie une valeur supérieure à 0.
5strchr(s1, ch);
Renvoie un pointeur vers la première occurrence du caractère ch dans la chaîne s1.
6strstr(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 ci-dessus :

Exemple

#include <stdio.h> #include <string.h> int main () { char str1[14] = "example"; char str2[14] = "google"; char str3[14]; int len ; /*Copie str1 dans str3*/ strcpy(str3, str1); printf("strcpy( str3, str1) : %s\n", str3 ); /*Connecter str1 et str2*/ strcat( str1, str2); printf("strcat( str1, str2): %s\n", str1 ); /*Après la concaténation, la longueur totale de str1*/ len = strlen(str1); printf("strlen(str1) : %d\n", len ); return 0; }

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

strcpy( str3, str1) :  example
strcat( str1, str2):   examplegoogle
strlen(str1) :  12

Vous pouvez trouver plus de fonctions liées aux chaînes de caractères dans la bibliothèque standard C.

autres extensions