string array c implementation representation with examples
Een String Array in C ++ is een array van strings. In deze zelfstudie gaan we dieper in op de details van de weergave en implementatie van stringarrays in C ++:
We hebben arrays in C ++ gezien in onze eerdere tutorials. Met arrays kunnen we gegevenselementen van verschillende typen declareren. Terwijl de arrays van alle numerieke datatypes identiek zijn in bewerkingen en implementatie, en de arrays met string-datatype verschillend zijn.
wat is het verschil tussen java en c ++
In C ++ kan de tekenreeks worden weergegeven als een reeks tekens of met een tekenreeksklasse die wordt ondersteund door C ++. Elke tekenreeks of matrixelement wordt beëindigd door een nul-teken. Het vertegenwoordigen van tekenreeksen met behulp van een tekenreeks wordt rechtstreeks uit de ‘C’-taal gehaald, aangezien er geen tekenreeks in C is.
Klik hier voor de gratis C ++ cursus.
Wat je leert:
Implementatie van string-arrays
In C ++ kunnen strings op drie manieren worden weergegeven.
- Gebruik van tweedimensionale tekenreeksen: Deze weergave maakt gebruik van de tweedimensionale arrays waarbij elk element het snijpunt is van een rij- en kolomnummer en een tekenreeks vertegenwoordigt
- String-trefwoord gebruiken: We kunnen ook het string-sleutelwoord van C ++ gebruiken om string-arrays te declareren en te definiëren.
- STL-vectoren gebruiken: We kunnen STL-vectoren gebruiken waarin elk element van een vector een string is.
Laten we nu elk van de bovenstaande methoden bespreken en ook de programmeervoorbeelden voor elke weergave bekijken.
Gebruik van tweedimensionale tekenreeksen
String-arrays of een reeks strings kunnen worden weergegeven met behulp van een speciale vorm van tweedimensionale arrays. In deze weergave gebruiken we een tweedimensionale reeks typetekens om een tekenreeks weer te geven.
De eerste dimensie specificeert het aantal elementen, d.w.z. strings in die array en de tweede dimensie specificeert de maximale lengte van elk element in de array.
We kunnen dus een algemene weergave gebruiken zoals hieronder weergegeven.
Bijvoorbeeld,overweeg de volgende verklaring:
De bovenstaande declaratie declareert een reeks strings genaamd ‘string_array’ die 10 elementen heeft en de lengte van elk element niet meer dan 20 is.
We kunnen op de volgende manier een reeks dieren declareren en initialiseren met tekenreeksen:
Laten we een programmeervoorbeeld bekijken dat het concept van tweedimensionale karaktermatrices gebruikt om het concept beter te begrijpen.
Uitgang:
In het bovenstaande programma hebben we een reeks strings gedeclareerd genaamd strArray van grootte 5 met de maximale lengte van elk element als 10. In het programma starten we een for-lus om elk element van de array weer te geven. Merk op dat we alleen toegang nodig hebben tot de array met behulp van de eerste dimensie om het element weer te geven.
Gemakkelijke toegang tot elementen is een van de belangrijkste voordelen van 2-D-arrays. Ze zijn inderdaad eenvoudig te programmeren.
Het belangrijkste nadeel van dit type weergave is dat zowel de afmetingen van de array, d.w.z. het aantal elementen, als de maximale lengte van het element vast zijn en niet kunnen worden gewijzigd zoals we willen.
Ten tweede specificeren we de maximale lengte van elk element als de tweede dimensie tijdens de declaratie van de array. Als de stringlengte is opgegeven als 100, en we hebben alle elementen die minder lang zijn, dan is het geheugen verspild.
String Trefwoord gebruiken
Hierin gebruiken we het trefwoord ‘string’ in C ++ om een reeks strings te declareren. In tegenstelling tot tekenarrays hebben we hier alleen 1D-array. De enige dimensie geeft het aantal strings in de array aan.
De algemene syntaxis voor een array van strings-declaratie met behulp van het string-sleutelwoord wordt hieronder gegeven:
Merk op dat we hier niet de maximale lengte van de string specificeren. Dit betekent dat er geen beperking is op de lengte van de array-elementen.
Als voorbeeld kunnen we op de volgende manier een reeks kleurnamen declareren.
We kunnen deze array verder initialiseren zoals hieronder weergegeven:
Hieronder wordt een C ++ -programma gegeven om het string-sleutelwoord en het gebruik ervan in een reeks strings te begrijpen.
Uitgang:
We hebben ons vorige character array-programma aangepast en het gebruik van string-sleutelwoorden gedemonstreerd. De uitvoer van het programma is hetzelfde, maar de manier waarop het wordt bereikt, is anders omdat we een reeks strings definiëren met behulp van het trefwoord string.
Merk op dat de reeks strings die het string-sleutelwoord gebruiken, een voordeel heeft waarbij we geen beperkingen hebben voor de lengte van de strings in de array. Omdat er geen beperking is, verspillen we ook geen geheugenruimte.
Aan de andere kant heeft deze array een vaste grootte. We moeten de grootte van de array vooraf aangeven.
STL-vectoren gebruiken
We kunnen ook STL-vectoren gebruiken voor het declareren en definiëren van dynamische arrays. Om een array van strings te definiëren, kunnen we dus een STL-vector van het type string hebben.
Deze verklaring van een reeks strings met behulp van vector wordt hieronder weergegeven:
Verwijzend naar de bovenstaande verklaring, kunnen we een vector 'onderwerpen' op de volgende manier declareren:
Merk op dat we elementen aan de vector kunnen toewijzen met behulp van de 'push_back' -methode of andere STL-vectormethoden.
Hieronder wordt een programmeervoorbeeld gegeven waarin C ++ wordt gebruikt om het gebruik van de STL-vector te demonstreren om een reeks strings weer te geven.
hoe .jar-bestanden te openen met java
Uitgang:
In het bovenstaande programma hebben we een STL-vector myNumbers van het type string. Vervolgens voegen we elementen toe aan deze vector met behulp van de push_back-methode en geven we vervolgens elk van de elementen van de vector weer.
Als we de volledige werking van de STL-vector en de reeks strings zien, zien we dat we in dit geval geen limiet hebben voor het aantal elementen in de array of de maximale lengte van elk element. We zien dat de reeks strings die vectoren gebruiken volledig dynamisch is en dynamisch kan worden verkleind of vergroot.
Hoe de te gebruiken weergave selecteren?
Nu we alle drie representaties van string-arrays hebben gezien, kunnen we concluderen dat van alle drie representaties de vectorrepresentatie de beste is omdat deze dynamisch van aard is.
Het hangt af van het doel en de vereisten van de string-array. Als we de vereiste hebben dat we een string-array met een vaste grootte nodig hebben en we de exacte gegevens kennen die in een string-array terechtkomen, dan kunnen we gaan voor character array of string-representatie.
Als we willen dat de string-array dynamisch groeit of krimpt, kunnen we onze toevlucht nemen tot vectorrepresentatie, omdat dit ons zal helpen om programma's te ontwikkelen door de array dynamisch te veranderen.
Gevolgtrekking
String-arrays zijn speciale arrays met gegevens als strings. Dit betekent dat elk element van de array een string is die eindigt op een null-teken.
We hebben drie voorstellingen van een string-array in detail besproken, samen met hun voor- en nadelen. Afhankelijk van onze wensen; we kunnen elke representatie van de string-array gebruiken die past bij onze implementatie.
In onze volgende tutorials zullen we C ++ strings en C ++ functies in detail onderzoeken.
Lees de Easy C ++ Training Series door.
Aanbevolen literatuur
- Zelfstudie over Java-array-lengte met codevoorbeelden
- Java String met String Buffer en String Builder Tutorial
- C # String Tutorial - String-methoden met codevoorbeelden
- Python String-functies
- C ++ arrays met voorbeelden
- Strings in C ++ met voorbeelden
- C # Random Number en C # Random String Generator met codevoorbeelden
- Heap-sortering in C ++ met voorbeelden