Array di stringhe in C ++ - Accedi agli elementi dall'array String - assegnazione

Sommario:

Anonim

Introduzione all'array di stringhe in C ++

Esistono molti tipi di dati in C ++, come intero, float, carattere, stringa. Il tipo di dati stringa è un array di caratteri che termina con un carattere null ('\ 0') che indica la fine dell'array o della stringa. C non li aveva come tali la stringa del tipo di dati, per cui abbiamo dovuto formare una matrice di caratteri per formare una stringa. In C ++, abbiamo la stringa di tipo di dati incorporata.

Esempio di carattere: "a" o "A"

Esempio di stringa (C ++): "inglese"

Stringa: matrice di caratteri: stringa (0) = 'E'

String (1) = 'n'

String (2) = 'g'

String (3) = 'l'

String (4) = 'i'

String (5) = 's'

String (6) = 'h'

String (7) = '\ 0'

Le stringhe possono essere dichiarate, scritte e stampate direttamente in C ++. Inoltre, è possibile accedere a ciascun carattere di una stringa utilizzando un indice simile all'indicizzazione nell'array. Nel caso della stringa, quando leggiamo sotto forma di una matrice di caratteri usando scanf (), arresterà la stringa o la funzione di lettura quando trova il primo spazio bianco. Per evitare ciò si può usare la funzione get (). Questo legge un'intera riga e interromperà la lettura solo quando l'utente preme 'Invio'.

String Array in C ++ un array di più stringhe

L'array di stringhe o l'array di stringhe è un array di stringhe multiple. Questo può essere dichiarato come segue:

string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");

Per stampare l'intero array di stringhe, per loop può essere usato:

Codice:

for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)

Produzione:

Come accedere agli elementi dall'array String?

La matrice di stringhe è simile a una matrice bidimensionale. La prima dimensione o indice specifica l'indice di stringa dalla prima parola / stringa simile a un array o dalla seconda parola / stringa e così via. Considerando che la seconda dimensione o indice specifica quale carattere in quella specifica parola / stringa.

Per spiegarlo con un chiaro esempio:

Animals(2)(1) = 'i'

Nell'esempio sopra, il primo indice '2' specifica che è la seconda stringa dell'array: “Tiger”. Il secondo indice '1' specifica che è la seconda lettera o l'indice 1 dalla parola "Tiger". Utilizzando l'indicizzazione bidimensionale è possibile accedere facilmente a ciascun carattere di ciascuna stringa.

Assegnazione o definizione di array di stringhe

Esistono diversi metodi di allocazione di una matrice di stringhe:

1. Matrice 2D di Char (che può essere utilizzata anche in C)

nome char (numero massimo di elementi) (dimensione massima di ciascun elemento)

char color (4) (8) = ("blu", "rosso", "bianco", "nero")

Codice:

int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)

Uscita :

Qui il colore dell'array ha una dimensione fissa, ovvero il numero di elementi è fisso e anche il numero di caratteri o dimensioni dell'elemento è fisso. Il numero massimo di elementi che è possibile definire è 4 e ognuno può avere un massimo di 8 caratteri non superiore a quello. Questa è la barriera principale nell'array di caratteri 2D.

2. Matrice con la parola chiave String (possibile solo in C ++)

stringa Nome (numero massimo di elementi)

string color (4) = ("blu", "rosso", "bianco", "nero")

Codice:

int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)

Uscita :

Qui viene fissata solo una dimensione quando la dichiariamo come matrice di stringhe. È fissato solo il numero di elementi. La dimensione dell'elemento può variare. Ma specificando la seconda dimensione possiamo accedere o visualizzare il carattere specifico da una rispettiva stringa.

3. Utilizzo dei vettori in C ++

nome vettoriale

colore vettoriale

Codice:

#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)
#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)

Produzione:

Qui viene allocato in modo dinamico, la memoria viene allocata dall'heap. La dimensione non è fissa. Può aumentare o diminuire secondo il numero di elementi. In caso di allocazione dinamica di array di stringhe utilizzando il comando "nuovo", è necessario deallocare manualmente la memoria allocata. Ma nel caso del vettore, questo non è necessario. La riallocazione è possibile nel vettore mentre non è possibile nell'array allocato dinamicamente.

4. Passaggio di array di stringhe in una funzione

L'array di stringhe può essere passato a una funzione simile a Come passiamo un array.

Codice:

#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)

Uscita :

Qui, stiamo passando l'array di stringhe come parametro a una funzione "display" che stampa il terzo elemento dell'array di stringhe ("positivo").

5. Copiare da String Array a un altro

Per copiare da un array di stringhe a un altro, dovremmo copiare ogni elemento singolarmente ma l'intero array non può essere copiato in un colpo solo.

Codice:

int main() (
string str(4) = ("Good", "Bad", "Positive", "Negative");
string s(4);
// s = str; -à This line gives error as the whole array cannot be copied at a single go
// It can be copied as shown below
for( int i=0; i<4; i++) (
s(i) = str(i);
)
for(int i=0; i<4; i++) (
cout << "The element " << i+1 << " of copied array = " << s(i) << " is same as
the corresponding element in main array which is " << str(i) << endl;
)
)

Uscita errore:

Produzione:

Qui quando abbiamo provato a copiare l'intero array di stringhe principale (str) in un altro array di stringhe abbiamo ricevuto un errore (come mostrato nella schermata 1) mentre quando lo abbiamo copiato elemento per elemento, str è stato copiato in se potevamo verificare questo vedendo il secondo screenshot di output.

Conclusione

Pertanto, la stringa è un tipo di dati che è un array di caratteri ed è presente solo in C ++. In C abbiamo dichiarato una matrice di caratteri. L'array di stringhe è un array composto da molte stringhe. Se dichiarato staticamente o dinamicamente è di dimensioni fisse e quando dichiarato sotto forma di un vettore, la dimensione non è fissa. È possibile accedere facilmente a ciascun elemento e carattere in un elemento specifico tramite l'indicizzazione dell'array di stringhe.

Articoli consigliati

Questa è una guida a String Array in C ++. Qui discutiamo come eccesso di elemento in String Array in C ++ e allocazione di String Array in C ++. Puoi anche consultare i nostri altri articoli correlati per saperne di più-

  1. Array di stringhe in Python
  2. StringBuffer in Java
  3. Funzioni stringa Python
  4. Matrici in C ++
  5. Introduzione alla matrice di stringhe in C #
  6. Principali 11 caratteristiche e vantaggi di C ++
  7. Top 8 confronti di String vs StringBuilder
  8. La matrice funziona in Unix con la sintassi?