Unterschied zwischen Character Array und String

Autor: Laura McKinney
Erstelldatum: 1 April 2021
Aktualisierungsdatum: 5 Kann 2024
Anonim
47 - STRINGS or CHARACTER ARRAYS - C PROGRAMMING
Video: 47 - STRINGS or CHARACTER ARRAYS - C PROGRAMMING

Inhalt


C ++ unterstützt beide, Zeichenarray und Zeichenfolge, da C ++ erhebliche Vorteile bei der Verwendung von beiden hat. Die Unfähigkeit, ein Zeichenarray zu bearbeiten, führt jedoch zur Entwicklung einer Klassenzeichenfolge. Sowohl ein Zeichenfeld als auch eine Zeichenfolge enthalten die Zeichenfolge. Der grundlegende Unterschied zwischen Zeichenarray und String besteht jedoch darin, dass das „Zeichenarray“ nicht mit Standardoperatoren betrieben werden kann, wohingegen die „String“ -Objekte mit Standardoperatoren betrieben werden können. Untersuchen wir die anderen Unterschiede zwischen einem Zeichenarray und einer Zeichenfolge.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Fazit

Vergleichstabelle

Grundlage für den VergleichZeichenarrayString
BasicDas Zeichenarray ist eine Sammlung von Variablen des Zeichendatentyps.String ist eine Klasse und Variablen von string sind das Objekt der Klasse "string".
Syntaxchar array_name;string string_name;
IndizierungAuf ein einzelnes Zeichen in einem Zeichenarray kann über seinen Index im Array zugegriffen werden.In string kann auf das jeweilige Zeichen mit der Funktion "string_name.charAt (index)" zugegriffen werden.
DatentypEin Zeichenarray definiert keinen Datentyp.Ein String definiert einen Datentyp in C ++.
BetreiberOperatoren in C ++ können nicht auf Zeichenarrays angewendet werden.Sie können den Standard-C ++ - Operator auf die Zeichenfolge anwenden.
GrenzeArray-Grenzen können leicht überschritten werden.Grenzen werden nicht überschritten.
ZugriffSchneller Zugriff.Langsamer Zugriff.


Definition von Character Array


Ein Zeichenarray ist eine Sammlung der Variablen des Datentyps "char". es kann ein eindimensionales Array oder ein zweidimensionales Array sein. Es wird auch als "nullterminierte Zeichenfolge" bezeichnet. Ein Zeichenarray ist eine Folge von Zeichen, die in aufeinanderfolgenden Speicheradressen gespeichert sind. In einem Zeichenarray kann auf ein bestimmtes Zeichen über seinen Index zugegriffen werden. Ein „Nullzeichen“ beendet das Zeichenfeld.

Nehmen wir ein Beispiel für ein Zeichenarray:

Zeichenname = {A, j, a, y, 0}; oder char name = "Ajay";

Hier ist "char" ein Zeichendatentyp, "name" ein Variablenname des Zeichenarrays. Ich hatte zwei Möglichkeiten gezeigt, um das Zeichenarray zu initialisieren. Bei der ersten Methode wird die Null explizit erwähnt, und bei der zweiten Methode fügt der Compiler die Null automatisch ein.


Das Ende der Zeichenfolge ist immer ein Nullzeichen. Es ist das Abschlusszeichen des Zeichenarrays. Ein Zeichenarray ist kein integrierter Datentyp. Wir erstellen ein Zeichen-Array, indem wir es deklarieren. Sie können keine Standardoperatoren auf ein Zeichenarray anwenden. Um ein Zeichenarray zu bearbeiten, gibt es einige eingebaute Funktionen wie (strlen (), strlwr (), strupr (), strcat ()). Da die Standardoperatoren nicht auf ein Zeichenarray angewendet werden können, können sie an keinem Ausdruck teilnehmen.

Der Zeichenzeiger auf ein Zeichenarray kann ebenfalls erstellt werden.

Lassen Sie es uns anhand eines Beispiels verstehen.

char s1 = "Hallo"; char s2 = "Sir"; s1 = s1 + s2; // Fehleroperatoren können nicht angewendet werden s2 = s1; // Fehler Zeichenzeiger char * s = "Morning"; char * p; p = s; // wird ausgeführt

Im obigen Beispiel hatten wir zwei Zeichenarrays s1, s2 und zwei Zeichenzeiger s und p deklariert. Wenn das Zeichenarray s1 und s2 initialisiert ist, können wir sehen, dass weder der Additionsoperator (+) noch der Zuweisungsoperator mit dem Zeichenarray arbeiten. Ein Zeichenzeiger kann jedoch einem anderen Zeichenzeiger zugewiesen werden.

Denken Sie daran, dass das Zeichenarray nach seiner Initialisierung nicht erneut mit einem anderen Zeichensatz initialisiert werden kann. Der Zugriff auf ein Zeichenarray oder eine nullterminierte Zeichenfolge ist im Vergleich zu einer Zeichenfolge in C ++ schnell.

Definition von String

Eine Zeichenfolge ist kein integrierter Datentyp von C ++. Es ist ein Klassenobjekt vom Typ "string". Wie in C ++ ähnelt das Erstellen einer Klasse dem Erstellen eines „Typs“. Die Klasse "string" ist Teil der C ++ - Bibliothek. Es enthält den gesamten Zeichensatz oder das gesamte Zeichenarray. Es gibt drei Gründe für die Entwicklung einer Standard-String-Klasse.

  • Zuerst Ist dies „Konsistenz“, sind die Zeichen-Arrays keine eigenen Datentypen.
  • Zweite ist "Bequemlichkeit", können Sie keine Standardoperatoren für ein Zeichenarray verwenden.
  • Dritte ist "Sicherheit", werden Array-Grenzen leicht überschritten.

Lassen Sie uns Strings anhand eines Beispiels verstehen.

string s1; s1 = "Hallo"; string s2 ("Guten Morgen"); string s3 = "Hennery"; string s4;

In der obigen Deklaration werden vier Stringvariablen oder Objekte (s1, s2, s3, s4) deklariert. In der obigen Deklaration hatte ich drei Möglichkeiten zum Initialisieren der Zeichenfolge gezeigt. Der String s1 wird deklariert und dann separat initialisiert. Der String s2 wird vom Konstruktor der Klasse „String“ initialisiert. Der String s3 wird zum Zeitpunkt seiner Deklaration wie üblich vom Datentyp do initialisiert. Wir können den Standardoperator auf die Zeichenfolgenvariablen anwenden.

s4 = s1; // ein String-Objekt einem anderen zuweisen s4 = s1 + s2; // Addiere zwei Zeichenketten und speichere das Ergebnis in der dritten Zeichenkette, wenn (s3> s2) // vergleiche zwei Zeichenketten Zeichenketten s5 (s1); Erstellen eines neuen String-Objekts unter Verwendung eines vorhandenen String-Objekts

Im obigen Code werden verschiedene Operatoren auf eine Zeichenfolge angewendet und verschiedene Operationen ausgeführt. Die erste Anweisung kopiert ein Zeichenfolgenobjekt in ein anderes Zeichenfolgenobjekt. In der zweiten Anweisung werden zwei Zeichenfolgen verkettet und in einer dritten Zeichenfolge gespeichert. In der dritten Anweisung werden zwei Zeichenfolgen verglichen. In der vierten Anweisung wird ein neues Zeichenfolgeobjekt unter Verwendung des bereits vorhandenen Zeichenfolgeobjekts erstellt.

Der Zugriff auf die Zeichenfolge ist im Vergleich zu einem Zeichenarray oder einer nullterminierten Zeichenfolge langsam.

Hauptunterschiede zwischen Character Array und String

  1. Ein Zeichenarray ist eine Sammlung von Variablen, die einen Zeichendatentyp haben. String ist eine Klasse, die zum Deklarieren von Strings instanziiert wird.
  2. Mit dem Indexwert können Sie auf ein Zeichen aus einem Zeichenarray zugreifen. Wenn Sie dagegen auf ein bestimmtes Zeichen in einer Zeichenfolge zugreifen möchten, können Sie über die Funktion string’s_name.charAt (index) darauf zugreifen.
  3. Da ein Array kein Datentyp ist, ist auch ein Zeichen kein Datentyp. Auf der anderen Seite fungiert String als Referenztyp und kann daher als Datentyp bezeichnet werden.
  4. Sie können keinen Operator auf ein Zeichenarray anwenden, während Sie Operatoren auf String anwenden können.
  5. Ein Array-Zeichen-Array hat eine feste Länge und seine Grenzen können leicht überschritten werden. Wobei String keine Grenzen hat.
  6. Array-Elemente werden an einem zusammenhängenden Speicherort gespeichert, sodass auf sie schneller zugegriffen werden kann als auf Zeichenfolgenvariablen.

Fazit:

Die Unfähigkeit, ein Zeichenarray zu bearbeiten, führte zur Entwicklung der Standard-Zeichenfolgenklasse.