string array c implementation representation with examples
Tablica ciągów w C ++ jest tablicą ciągów. W tym samouczku zagłębimy się w szczegóły reprezentacji i implementacji tablic ciągów w C ++:
Tablice w C ++ widzieliśmy we wcześniejszych tutorialach. Tablice pozwalają nam deklarować elementy danych różnego typu. Podczas gdy tablice wszystkich liczbowych typów danych są identyczne pod względem operacji i implementacji, a tablice z danymi typu string są różne.
W języku C ++ ciąg może być reprezentowany jako tablica znaków lub za pomocą klasy ciągu obsługiwanej przez C ++. Każdy ciąg lub element tablicy jest zakończony znakiem null. Reprezentowanie ciągów za pomocą tablicy znaków jest pobierane bezpośrednio z języka „C”, ponieważ w języku C nie ma typu łańcucha.
przekazać tablicę do metody java
=> Kliknij tutaj, aby uzyskać bezpłatny kurs C ++.
Czego się nauczysz:
Implementacja tablic ciągów
W C ++ łańcuchy można przedstawić na trzy sposoby.
- Korzystanie z dwuwymiarowych tablic znaków: Ta reprezentacja używa dwuwymiarowych tablic, w których każdy element jest przecięciem numeru wiersza i kolumny i reprezentuje ciąg
- Korzystanie ze słowa kluczowego typu string: Możemy również użyć słowa kluczowego string C ++ do deklarowania i definiowania tablic ciągów.
- Korzystanie z wektorów STL: Możemy użyć wektorów STL, w których każdy element wektora jest łańcuchem.
Omówmy teraz każdą z powyższych metod, a także zobaczmy przykłady programowania dla każdej reprezentacji.
Korzystanie z dwuwymiarowych tablic znaków
Tablice ciągów lub tablice ciągów można reprezentować za pomocą specjalnej postaci tablic dwuwymiarowych. W tej reprezentacji używamy dwuwymiarowej tablicy znaków do reprezentacji ciągu.
Pierwszy wymiar określa liczbę elementów, czyli ciągów w tej tablicy, a drugi wymiar określa maksymalną długość każdego elementu w tablicy.
Możemy więc użyć ogólnej reprezentacji, jak pokazano poniżej.
char “stringarrayname” [“number of strings”] [“maximum length of the string”]
Na przykład,rozważ następującą deklarację:
char string_array[10] [20];
Powyższa deklaracja deklaruje tablicę ciągów o nazwie „string_array”, która ma 10 elementów, a długość każdego elementu nie przekracza 20.
Możemy zadeklarować i zainicjować tablicę zwierząt używając ciągów znaków w następujący sposób:
char animals [5] [10] = {“Lion”, “Tiger”, “Deer”, “Ape”, “Kangaroo”};
Spójrzmy na przykład programowania wykorzystujący koncepcję dwuwymiarowych tablic znaków, aby lepiej zrozumieć tę koncepcję.
#include using namespace std; int main() { char strArray[5] [6] = {'one', 'two', 'three', 'four', 'five'}; cout<<'String array is as follows:'< Wynik:

W powyższym programie zadeklarowaliśmy tablicę ciągów o nazwie strArray o rozmiarze 5 z maksymalną długością każdego elementu równą 10. W programie inicjujemy pętlę for, aby wyświetlić każdy element tablicy. Zauważ, że musimy tylko uzyskać dostęp do tablicy, używając pierwszego wymiaru, aby wyświetlić element.
Łatwy dostęp do elementów to jedna z głównych zalet macierzy 2-D. Są rzeczywiście łatwe do zaprogramowania.
Główną wadą tego typu reprezentacji jest to, że zarówno wymiary tablicy, czyli liczba elementów, jak i maksymalna długość elementu są stałe i nie można ich zmienić tak, jak chcemy.
Po drugie, określamy maksymalną długość każdego elementu jako drugi wymiar podczas deklaracji tablicy. Jeśli długość łańcucha jest określona jako 100, a mamy wszystkie elementy o mniejszej długości, pamięć jest marnowana.
Używanie słowa kluczowego typu string
W tym przypadku używamy słowa kluczowego „string” w C ++, aby zadeklarować tablicę ciągów. W przeciwieństwie do tablic znaków, tutaj mamy tylko tablicę 1D. Jedyny wymiar określa liczbę ciągów w tablicy.
Ogólna składnia dla tablicy deklaracji ciągów znaków przy użyciu słowa kluczowego string jest podana poniżej:
string “array name” [“number of strings”];
Zwróć uwagę, że nie określamy tutaj maksymalnej długości łańcucha. Oznacza to, że nie ma ograniczeń co do długości elementów tablicy.
Jako przykład możemy zadeklarować tablicę nazw kolorów w następujący sposób.
string colors[5];
Możemy dalej zainicjować tę tablicę, jak pokazano poniżej:
string colors[5] = {“Red”, “Green”, “Blue”, “Orange”, “Brown”};
Poniżej podano program C ++ do zrozumienia słowa kluczowego string i jego zastosowania w tablicy ciągów.
#include using namespace std; int main() { string numArray[5] = {'one', 'two', 'three', 'four', 'five'}; cout<<'String array is as follows:'< Wynik:

Zmodyfikowaliśmy nasz poprzedni program tablicy znaków i zademonstrowaliśmy użycie słowa kluczowego string. Dane wyjściowe programu są takie same, ale sposób ich osiągnięcia jest inny, ponieważ definiujemy tablicę ciągów za pomocą słowa kluczowego string.
Zauważ, że tablica łańcuchów używająca słowa kluczowego string ma tę zaletę, że nie mamy ograniczeń co do długości łańcuchów w tablicy. Ponieważ nie ma ograniczeń, nie marnujemy również miejsca w pamięci.
Z drugiej strony ta tablica ma stały rozmiar. Musimy wcześniej zadeklarować rozmiar tablicy.
Korzystanie z wektorów STL
Możemy również użyć wektorów STL do deklarowania i definiowania tablic dynamicznych. Tak więc, aby zdefiniować tablicę ciągów, możemy mieć wektor STL typu string.
Ta deklaracja tablicy ciągów przy użyciu wektora jest pokazana poniżej:
vector “stringarray_Name”;
Nawiązując do powyższej deklaracji, możemy zadeklarować „podmioty” wektorowe w następujący sposób:
vector mysubjects;
Zauważ, że możemy przypisać elementy do wektora za pomocą metody „push_back” lub dowolnej innej metody wektorowej STL.
Poniżej podano przykład programowania przy użyciu C ++ do zademonstrowania użycia wektora STL do reprezentowania tablicy ciągów.
#include #include using namespace std; int main() { vector myNumbers; myNumbers.push_back('one'); myNumbers.push_back('two'); myNumbers.push_back('three'); myNumbers.push_back('four'); myNumbers.push_back('five'); cout<<'String array is as follows:'< Wynik:

W powyższym programie mamy wektor STL myNumbers typu string. Następnie dodajemy elementy do tego wektora za pomocą metody push_back, a następnie wyświetlamy każdy z elementów wektora.
Jeśli widzimy całe działanie wektora STL i tablicy ciągów, widzimy, że w tym przypadku nie mamy ograniczenia co do liczby elementów w tablicy ani maksymalnej długości każdego elementu. Widzimy, że tablica łańcuchów używających wektorów jest całkowicie dynamiczna i można ją dynamicznie zmniejszać lub zwiększać.
Jak wybrać reprezentację do użycia?
Teraz, gdy widzieliśmy wszystkie trzy reprezentacje tablic ciągów, możemy wywnioskować, że ze wszystkich trzech reprezentacji reprezentacja wektorowa jest najlepsza, ponieważ ma charakter dynamiczny.
Zależy to od celu i wymagań tablicy ciągów. Kiedy mamy wymaganie, że potrzebujemy tablicy ciągów o stałym rozmiarze i znamy dokładne dane, które znajdą się w tablicy ciągów, możemy przejść do tablicy znaków lub reprezentacji ciągów.
jakie typy aplikacji testujemy
Kiedy chcemy, aby tablica ciągów dynamicznie rosła lub kurczyła się, możemy uciec się do reprezentacji wektorowej, ponieważ pomoże nam to w tworzeniu programów poprzez dynamiczną zmianę tablicy.
Wniosek
Tablice łańcuchowe to specjalne tablice zawierające dane jako ciągi. Oznacza to, że każdy element tablicy jest łańcuchem zakończonym znakiem null.
Omówiliśmy szczegółowo trzy reprezentacje tablicy ciągów wraz z ich zaletami i wadami. W zależności od naszych wymagań; możemy użyć dowolnej reprezentacji tablicy ciągów, która pasuje do naszej implementacji.
W naszych kolejnych samouczkach będziemy dalej szczegółowo badać ciągi znaków C ++ i funkcje C ++.
=> Przeczytaj serię szkoleń Easy C ++.
rekomendowane lektury
- Samouczek dotyczący długości tablicy w języku Java z przykładami kodu
- Ciąg Java z buforem ciągów i samouczek dotyczący tworzenia ciągów
- C # String Tutorial - Metody ciągów z przykładami kodu
- Funkcje łańcuchowe w Pythonie
- Tablice C ++ z przykładami
- Ciągi w C ++ z przykładami
- Generator liczb losowych w języku C # i generator ciągów losowych w języku C # z przykładami kodu
- Sortuj na stosie w C ++ z przykładami