Wprowadzenie do Array String w C ++
W C ++ istnieje wiele typów danych, takich jak liczba całkowita, liczba zmiennoprzecinkowa, znak, ciąg. Typ danych ciągu to tablica znaków kończąca się znakiem null („\ 0”), który oznacza koniec tablicy lub łańcucha. C nie posiadał ich jako takich ciągów danych, z powodu których musieliśmy utworzyć tablicę znaków, aby utworzyć ciąg. W C ++ mamy wbudowany ciąg typu danych.
Przykład znaku: „a” lub „A”
Przykład ciągu znaków (C ++): „English”
Łańcuch: tablica znaków: Łańcuch (0) = „E”
String (1) = 'n'
Łańcuch (2) = „g”
String (3) = „l”
String (4) = „i”
String (5) = 's'
Łańcuch (6) = „h”
String (7) = '\ 0'
Ciągi mogą być deklarowane, pisane i drukowane bezpośrednio w C ++. Ponadto do każdego znaku w ciągu można uzyskać dostęp za pomocą indeksu podobnego do indeksowania w tablicy. W przypadku łańcucha, gdy czytamy w postaci tablicy znaków za pomocą scanf (), zatrzyma on łańcuch lub funkcję odczytu, gdy znajdzie pierwszą białą spację. Aby tego uniknąć, można użyć funkcji gets (). Czyta całą linię i przestaje czytać tylko wtedy, gdy użytkownik naciśnie „Enter”.
Tablica ciągów w C ++ tablica wielu ciągów znaków
Tablica ciągów lub tablica ciągów to tablica zawierająca wiele ciągów. Można to zadeklarować w następujący sposób:
string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");
Aby wydrukować całą tablicę łańcuchów, można użyć pętli for:
Kod:
for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)
Wynik:
Jak uzyskać dostęp do elementów z tablicy ciągów?
Tablica ciągów jest podobna do tablicy dwuwymiarowej. Pierwszy wymiar lub indeks określa indeks ciągu od podobnego do tablicy pierwszego słowa / ciągu lub drugiego słowa / ciągu i tak dalej. Natomiast drugi wymiar lub indeks określa, który znak w tym konkretnym słowie / ciągu znaków.
Aby wyjaśnić to wyraźnym przykładem:
Animals(2)(1) = 'i'
W powyższym przykładzie pierwszy indeks „2” określa, że jest to drugi ciąg z tablicy: „Tiger”. Drugi indeks „1” oznacza, że jest to druga litera lub indeks 1 od słowa „Tygrys”. Za pomocą indeksowania dwuwymiarowego można łatwo uzyskać dostęp do każdego znaku z każdego łańcucha.
Alokacja lub definiowanie tablicy ciągów
Istnieją różne metody alokacji tablicy ciągów:
1. 2D Array of Char (który może być używany również w C)
char nazwa (maksymalna liczba elementów) (maksymalny rozmiar każdego elementu)
kolor char (4) (8) = („niebieski”, „czerwony”, „biały”, „czarny”)
Kod:
int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Wyjście :
Tutaj kolor tablicy ma stały rozmiar, to znaczy liczba elementów jest ustalona, a także liczba znaków lub rozmiarów elementu jest również stała. Maksymalna liczba elementów, które można zdefiniować, wynosi 4, a każdy z nich może mieć maksymalnie 8 znaków, ale nie więcej. Jest to główna bariera w tablicy 2d znaków.
2. Tablica ze słowem kluczowym String (możliwe tylko w C ++)
string Nazwa (maksymalna liczba elementów)
kolor łańcucha (4) = („niebieski”, „czerwony”, „biały”, „czarny”)
Kod:
int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Wyjście :
Tutaj tylko jeden wymiar jest ustalany, gdy deklarujemy go jako tablicę łańcuchów. Naprawiono tylko liczbę elementów. Rozmiar elementu może się różnić. Ale określając drugi wymiar, możemy uzyskać dostęp lub wyświetlić określony znak z odpowiedniego ciągu.
3. Używanie wektorów w C ++
nazwa wektora
kolor wektorowy
Kod:
#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;
)
Wynik:
Tutaj jest przydzielany dynamicznie, pamięć jest przydzielana ze sterty. Rozmiar nie jest ustalony. Może się zwiększać lub zmniejszać zgodnie z liczbą elementów. W przypadku dynamicznego przydzielania tablicy ciągów za pomocą polecenia „new” musimy ręcznie zwolnić przydzieloną pamięć. Ale w przypadku wektora nie jest to konieczne. Realokacja jest możliwa w wektorze, natomiast nie jest możliwa w dynamicznie przydzielanej tablicy.
4. Przekazywanie tablicy łańcuchowej w funkcji
Tablica ciągów może być przekazana do funkcji podobnej do Jak przekazujemy tablicę.
Kod:
#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)
Wyjście :
Tutaj przekazujemy łańcuch tablicowy str jako parametr do funkcji „display”, która wypisuje trzeci element tablicy łańcuchów („Positive”).
5. Kopiowanie z macierzy łańcuchowej na inną
Aby skopiować z tablicy łańcuchowej na inny, powinniśmy skopiować każdy element osobno, ale nie można skopiować całej tablicy za jednym razem.
Kod:
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;
)
)
Wyjście błędu:
Wynik:
Tutaj, gdy próbowaliśmy skopiować całą główną tablicę łańcuchów (str) do innej tablicy łańcuchów, otrzymaliśmy błąd (jak pokazano na zrzucie ekranu 1), podczas gdy gdy kopiowaliśmy to element po elemencie, str został skopiowany do s i mogliśmy to zweryfikować widząc zrzut ekranu drugiego wyjścia.
Wniosek
Zatem ciąg jest typem danych, który jest tablicą znaków i jest obecny tylko w C ++. W C zwykliśmy zadeklarować jako tablicę znaków. Tablica ciągów jest tablicą złożoną z wielu ciągów. Po zadeklarowaniu statycznym lub dynamicznym ma stały rozmiar, a po zadeklarowaniu w postaci wektora rozmiar nie jest stały. Dostęp do każdego elementu i znaku w określonym elemencie można uzyskać za pomocą indeksowania tablicy ciągów.
Polecane artykuły
Jest to przewodnik po tablicy Array w C ++. Tutaj omawiamy, jak nadmiar elementu w String Array w C ++, i alokacja String Array w C ++. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej-
- Tablica ciągów w Pythonie
- StringBuffer w Javie
- Funkcje ciągów Python
- Tablice w C ++
- Wprowadzenie do Array String w C #
- 11 najważniejszych funkcji i zalet C ++
- 8 najlepszych porównań String vs StringBuilder
- Czy macierz działa w Uniksie ze składnią?