Différence entre tableau de caractères et chaîne

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 6 Peut 2024
Anonim
Différence entre tableau de caractères et chaîne - La Technologie
Différence entre tableau de caractères et chaîne - La Technologie

Contenu


C ++ supporte les deux, Tableau de caractères et chaîne, car C ++ présente des avantages considérables en utilisant les deux. Cependant, l'impossibilité d'opérer sur un tableau de caractères soulève le développement de la classe string. Un tableau de caractères et une chaîne contiennent la séquence de caractères. Mais la différence fondamentale entre tableau de caractères et chaîne est que le «tableau de caractères» ne peut pas être utilisé avec des opérateurs standard, alors que les objets «chaîne» peuvent être utilisés avec des opérateurs standard. Etudions les autres différences entre un tableau de caractères et une chaîne.

  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Conclusion

Tableau de comparaison

Base de comparaisonTableau de caractèresChaîne
De baseLe tableau de caractères est une collection de variables, de type de données de caractères.String est une classe et les variables de chaîne sont l'objet de la classe "chaîne".
Syntaxechar tableau_nom;chaîne nom_chaîne;
IndexageUn caractère individuel dans un tableau de caractères est accessible par son index dans le tableau.Dans la chaîne, le caractère particulier est accessible via la fonction "nom_chaîne.charAt (index)".
Type de donnéesUn tableau de caractères ne définit pas un type de données.Une chaîne définit un type de données en C ++.
Les opérateursLes opérateurs en C ++ ne peuvent pas être appliqués sur un tableau de caractères.Vous pouvez appliquer un opérateur C ++ standard sur la chaîne.
FrontièreLes limites des tableaux sont facilement dépassées.Les limites ne seront pas dépassées.
AccèsAccès rapide.Accès lent.


Définition de Character Array


Un tableau de caractères est une collection de variables de type de données «char»; il peut s'agir d'un tableau unidimensionnel ou d'un tableau bidimensionnel. On l'appelle aussi «chaîne terminée par un zéro». Un tableau de caractères est une séquence de caractères stockés dans des adresses de mémoire consécutives. Dans un tableau de caractères, il est possible d'accéder à un caractère particulier par son index. Un «caractère nul» termine le tableau de caractères ».

Prenons un exemple de tableau de caractères: -

nom du caractère = {A, j, a, y, 0}; ou nom de personnage = "Ajay";

Ici, "char" est un type de données caractère, "name" est un nom de variable du tableau de caractères. J'avais montré deux manières d'initialiser le tableau de caractères. Dans la première méthode, le null est explicitement mentionné et dans la seconde, le compilateur insère automatiquement le null.


La fin de la chaîne est toujours un caractère nul; c'est le caractère final du tableau de caractères. Un tableau de caractères n'est pas un type de données intégré; nous créons un tableau de caractères en le déclarant. Vous ne pouvez pas appliquer d'opérateurs standard sur un tableau de caractères. Pour opérer sur le tableau de caractères, certaines fonctions intégrées telles que, (strlen (), strlwr (), strupr (), strcat ()). Comme les opérateurs standard ne peuvent pas être appliqués à un tableau de caractères, ils ne peuvent prendre part à aucune expression.

Le pointeur de caractère sur un tableau de caractères peut également être créé.

Comprenons-le avec un exemple.

char s1 = "Bonjour"; char s2 = "Monsieur"; s1 = s1 + s2; // les opérateurs d'erreur ne peuvent pas être appliqués s2 = s1; // error Caractère pointeur char * s = "Matin"; char * p; p = s; // exécute

Dans l'exemple ci-dessus, nous avons déclaré deux tableaux de caractères s1, s2 et deux pointeurs de caractères s et p. Les tableaux de caractères s1 et s2 sont initialisés, nous pouvons voir que ni l'opérateur d'addition (+) ni l'opérateur d'affectation ne fonctionnent sur le tableau de caractères. Mais un pointeur de caractère peut être affecté à un autre pointeur de caractère.

N'oubliez pas qu'une fois le tableau de caractères initialisé, il ne peut plus être initialisé avec un autre ensemble de caractères. L'accès à un tableau de caractères ou à une chaîne terminée par zéro est rapide par rapport à chaîne en C ++.

Définition de chaîne

Une chaîne n'est pas un type de données intégré de C ++. C'est un objet de classe de type "chaîne". Comme en C ++, créer une classe revient à créer un «type». La classe "string" fait partie de la bibliothèque C ++. Il contient l'ensemble des caractères ou des tableaux de caractères dans leur ensemble. Le développement d’une classe de chaînes standard s’explique par trois raisons.

  • Première est "cohérence", les tableaux de caractères ne sont pas des types de données à part entière.
  • Seconde est «pratique», vous ne pouvez pas utiliser d'opérateurs standard sur un tableau de caractères.
  • Troisième est «sécurité», les limites des tableaux sont facilement dépassées.

Laissez-nous comprendre les chaînes avec un exemple.

chaîne s1; s1 = "Bonjour"; chaîne s2 ("bonjour"); chaîne s3 = "Hennery"; chaîne s4;

Dans la déclaration ci-dessus, quatre variables de chaîne ou objets (s1, s2, s3, s4) sont déclarés. Dans la déclaration ci-dessus, j'avais montré trois manières d'initialiser la chaîne. La chaîne s1 est déclarée puis initialisée séparément. La chaîne s2 est initialisée par le constructeur de la classe “String”. La chaîne s3 est initialisée au moment de sa déclaration en tant que type de données normal. Nous pouvons appliquer l'opérateur standard aux variables de chaîne.

s4 = s1; // affectation d'un objet chaîne à un autre s4 = s1 + s2; // ajout de deux chaînes et stockage du résultat dans la troisième chaîne if (s3> s2) // comparaison de deux chaînes chaînes s5 (s1); créer un nouvel objet string en utilisant un objet string existant

Dans le code ci-dessus, divers opérateurs sont appliqués sur une chaîne et diverses opérations sont effectuées. La première instruction copie un objet chaîne dans un autre objet chaîne. Dans la deuxième instruction, deux chaînes sont concaténées et stockées dans une troisième chaîne. Dans la troisième instruction, deux chaînes sont comparées. Dans la quatrième instruction, un nouvel objet chaîne est créé à l'aide de l'objet chaîne déjà existant.

L'accès à la chaîne est lent comparé à un tableau de caractères ou à une chaîne terminée par un caractère nul.

Principales différences entre les tableaux de caractères et les chaînes

  1. Un tableau de caractères est un ensemble de variables de type données. String est une classe instanciée pour déclarer des chaînes.
  2. En utilisant la valeur d'index, vous pouvez accéder à un caractère à partir d'un tableau de caractères. Par ailleurs, si vous souhaitez accéder à un caractère particulier d’une chaîne, vous pouvez y accéder à l’aide de la fonction chaîne nom_fichier.charAt (index).
  3. Comme un tableau n'est pas un type de données, un caractère n'est pas non plus un type de données. D'un autre côté, String étant une classe agissant comme un type de référence, on peut donc dire que String est un type de données.
  4. Vous ne pouvez pas appliquer d'opérateur sur un tableau de caractères alors que vous pouvez appliquer des opérateurs sur String.
  5. Être un tableau tableau de caractères a une longueur fixe et ses limites peuvent être facilement dépassées. Où String n'a pas de limites.
  6. Les éléments de tableau sont stockés dans un emplacement mémoire contigu, ce qui permet un accès plus rapide qu'une variable chaîne.

Conclusion:

L’impossibilité d’opérer sur un tableau de caractères a entraîné le développement d’une classe de chaînes standard.