Qu'est-ce qu'un tableau de chaînes?

La chaîne est une collection de caractères, un tableau d'une chaîne est un tableau de tableaux de caractères. Chaque chaîne se termine par un caractère nul. Un tableau d'une chaîne est l'une des applications les plus courantes des tableaux à deux dimensions.

scanf () est la fonction d'entrée avec le spécificateur de format% s pour lire une chaîne en entrée du terminal. Mais l'inconvénient est qu'il se termine dès qu'il rencontre l'espace. Pour éviter cela, la fonction gets () peut lire n'importe quel nombre de chaînes, y compris les espaces blancs.

Sting est un tableau de caractères se terminant par le caractère spécial connu sous le nom de caractère nul («\ 0»).

Syntaxe

datatype name_of_the_array(size_of_elements_in_array);
char str_name(size);

Exemple

datatype name_of_the_array ( ) = ( Elements of array );
char str_name(8) = “Strings”;

Str_name est le nom de la chaîne et la taille définit la longueur de la chaîne (nombre de caractères).

Une chaîne peut être définie comme un tableau de caractères unidimensionnel, donc un tableau de chaînes est un tableau de caractères à deux dimensions.

Syntaxe

char str_name(size)(max);

Syntaxe

char str_arr(2)(6) = ( ('g', 'o', 'u', 'r', 'i', '\0'), ('r', ' a', ' m', '\0'));

Alternativement, nous pouvons même le déclarer comme

Syntaxe

char str_arr(2)(6) =(“gouri”, ”ram”);

À partir de la syntaxe donnée, il y a deux indices, le premier est le nombre de chaînes à déclarer et le second est de définir la longueur maximale de caractères que chaque chaîne peut stocker, y compris le caractère nul. Le concept C explique déjà que chaque caractère prend 1 octet de données lors de l'allocation de mémoire, l'exemple de syntaxe ci-dessus occupe 2 * 6 = 12 octets de mémoire.

Exemple

char str_name(8) = ('s', 't', 'r', 'i', 'n', 'g', 's', '\0');
By the rule of initialization of array, the above declaration can be written as
char str_name() = “Strings”;

0 1 2 3 4 5 6 7 Index

Variables 2000 2001 2002 2003 2004 2005 2006 2007 Adresse

Il s'agit d'une représentation de la façon dont les chaînes sont allouées en mémoire pour la chaîne déclarée ci-dessus en C.

Chaque caractère de la chaîne a un index et une adresse alloués à chaque caractère de la chaîne. Dans la représentation ci-dessus, le caractère nul («\ 0») est automatiquement placé par le compilateur C à la fin de chaque chaîne lorsqu'il initialise le tableau déclaré ci-dessus. Habituellement, les chaînes sont déclarées à l'aide de guillemets doubles conformément aux règles d'initialisation des chaînes et lorsque le compilateur rencontre des guillemets doubles, il ajoute automatiquement un caractère nul à la fin de la chaîne.

D'après l'exemple ci-dessus, car nous savons que le nom du tableau pointe vers le 0e index et l'adresse 2000, car nous savons déjà que l'indexation d'un tableau commence à 0. Par conséquent,

str_name + 0 points to the character “s”
str_name + 1 points to the character “t”

Comme l'exemple ci-dessus concerne un tableau unidimensionnel, le pointeur pointe vers chaque caractère de la chaîne.

Exemples de chaîne de tableau en C

#include
int main()
(
char name(10);
printf("Enter the name: ");
fgets(name, sizeof(name), stdin);
printf("Name is : ");
puts(name);
return 0;
)

Maintenant, pour les tableaux bidimensionnels, nous avons la syntaxe et l'allocation de mémoire suivantes. Pour cela, nous pouvons le prendre comme représentation de ligne et de colonne (format tableau).

char str_name(size)(max);

Dans cette représentation sous forme de tableau, chaque ligne (premier indice) définit comme le nombre de chaînes à stocker et la colonne (deuxième indice) définit la longueur maximale des chaînes.

char str_arr(2)(6) = ( ('g', 'o', 'u', 'r', 'i', '\0'), ('r', ' a', ' m', '\0'));

Alternativement, nous pouvons même le déclarer comme

Syntaxe:

char str_arr(2)(8) =(“gouri”, ”ram”);

Indice

Lignes

0 1 2 3 4 5 6 sept
0gourje\ 0\ 0\ 0
1runem\ 0\ 0\ 0\ 0\ 0

D'après l'exemple ci-dessus, nous savons que le nom du tableau pointe vers la 0e chaîne. Donc,

str_name + 0 point à la 0e chaîne «gouri»

str_name + 1 pointe vers la 1ère chaîne «ram»

Comme l'exemple ci-dessus concerne les tableaux bidimensionnels, le pointeur pointe vers chaque chaîne du tableau.

#include
int main()
(
int i;
char name(2)(8) = (
“gouri”,
“ram”
);
for (i = 0; i < 2; i++)
(
printf(“String = %s \n”, name + i, name + i);
)
return 0;
)

Production:

Fonctions des chaînes

strcpy (s1, s2); cette fonction copie la chaîne s2 dans la piqûre s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); cette fonction concatène les chaînes s1 et s2, la chaîne s2 est ajoutée à la fin de la chaîne s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); cette fonction renvoie la longueur de la chaîne s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Cette fonction compare les chaînes s1 et s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); ces fonctions trouvent la première occurrence du caractère donné ch dans la chaîne s1 et le pointeur pointe vers ce caractère dans la chaîne.

strstr (s1, s2); cela trouve la première occurrence de la chaîne s2 dans la chaîne s1 et le pointeur pointe vers la chaîne s2 dans la chaîne s1.

Avec certaines opérations invalides, str_arr (0) = "gouri"; dans cette opération, le pointeur de la chaîne est affecté au pointeur constant qui n'est pas valide et n'est pas possible, car le nom du tableau est un pointeur constant.

Pour éviter cela, nous pouvons attribuer str_arr en utilisant strcpy (str_arr (0), ”gouri”).

Conclusion

Un tableau lui-même se définit comme une liste de chaînes. À partir de l'introduction ci-dessus, nous pouvons conclure que la déclaration et l'initialisation des chaînes sont différentes comme nous l'avons vu pour chaque chaîne, le compilateur ajoute un caractère nul lorsqu'il lit la chaîne en entrée. Il existe de nombreuses fonctions de gestion de chaînes, quelques fonctions avec des exemples sont expliquées ci-dessus. Par conséquent, les tableaux de la chaîne sont aussi simples que les tableaux.

Articles recommandés

Ceci est un guide pour un tableau de chaînes en C. Ici, nous discutons les bases des chaînes de tableau, l'exemple de chaîne de tableau en C et les fonctions des chaînes. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–

  1. Tableau de chaînes en C #
  2. Tableau multidimensionnel en C
  3. Tableaux en programmation C
  4. Tableaux 2D en C #
  5. Comment fonctionne Array sous Unix avec la syntaxe?