Введение в String Array в C ++
В C ++ существует много типов данных, таких как целое число, число с плавающей запятой, символ, строка. Тип данных string - это массив символов, заканчивающийся нулевым символом ('\ 0'), который обозначает конец массива или строки. В C не было их как таковой строки типа данных, из-за чего нам пришлось формировать массив символов для формирования строки. В C ++ у нас есть встроенная строка типа данных.
Пример символа: «а» или «А»
Пример строки (C ++): «Английский»
String: массив символов: String (0) = 'E'
Строка (1) = 'n'
String (2) = 'g'
Строка (3) = 'l'
Строка (4) = 'я'
String (5) = 's'
Строка (6) = 'h'
Строка (7) = '\ 0'
Строки могут быть объявлены, написаны и напечатаны непосредственно в C ++. Кроме того, каждый символ в строке может быть доступен с помощью индекса, аналогичного индексации в массиве. В случае строки, когда мы читаем в виде массива символов с помощью scanf (), он останавливает строку или функцию чтения, когда находит первый пробел. Чтобы избежать этого, можно использовать функцию gets (). Это читает целую строку и прекратит чтение только тогда, когда пользователь нажмет «Enter».
String Array в C ++ массив из нескольких строк
Строковый массив или массив строк - это массив из нескольких строк. Это может быть объявлено следующим образом:
string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");
Для вывода всего массива строк можно использовать цикл for:
Код:
for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)
Выход:
Как получить доступ к элементам из массива строк?
Массив строк похож на 2-мерный массив. Первое измерение или индекс указывает индекс строки из массива, как 1- е слово / строка или 2- е слово / строка и так далее. Принимая во внимание, что второе измерение или индекс указывает, какой символ в этом конкретном слове / строке.
Чтобы объяснить это наглядным примером:
Animals(2)(1) = 'i'
В приведенном выше примере первый индекс «2» указывает, что это вторая строка из массива: «Тигр». Второй индекс «1» указывает, что это 2- я буква или индекс 1 от слова «тигр». Используя двумерное индексирование, можно легко получить доступ к каждому символу из каждой строки.
Распределение или определение строкового массива
Существуют разные способы выделения массива строк:
1. 2D Array of Char (который также может быть использован в C)
char name (максимальное количество элементов) (максимальный размер каждого элемента)
char color (4) (8) = («синий», «красный», «белый», «черный»)
Код:
int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Выход :
Здесь цвет массива имеет фиксированный размер, то есть количество элементов является фиксированным, а также количество символов или размеров элемента также является фиксированным. Максимальное количество элементов, которое может быть определено, равно 4, и каждый может содержать не более 8 символов. Это основной барьер в массиве 2-х символов.
2. Массив с ключевым словом String (возможно только в C ++)
Имя строки (максимальное количество элементов)
string color (4) = («синий», «красный», «белый», «черный»)
Код:
int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Выход :
Здесь только одно измерение фиксируется, когда мы объявляем его как строковый массив. Фиксировано только количество элементов. Размер элемента может варьироваться. Но, указав второе измерение, мы можем получить доступ или отобразить определенный символ из соответствующей строки.
3. Использование векторов в C ++
Имя вектора
векторный цвет
Код:
#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;
)
Выход:
Здесь он выделяется динамически, память выделяется из кучи. Размер не фиксированный. Может увеличиваться или уменьшаться в зависимости от количества элементов. В случае динамического выделения массива строк с помощью команды «new», нам нужно вручную освободить выделенную память. Но в случае вектора это не обязательно. Перераспределение возможно в векторе, тогда как в динамически распределенном массиве это невозможно.
4. Передача String Array в функцию
String Array может быть передан функции, аналогичной тому, как мы передаем Array.
Код:
#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)
Выход :
Здесь мы передаем строковый массив str в качестве параметра функции «display», которая печатает третий элемент строкового массива («Positive»).
5. Копирование из String Array в другое
Чтобы скопировать из строкового массива в другой, мы должны копировать каждый элемент по отдельности, но весь массив не может быть скопирован за один раз.
Код:
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;
)
)
Ошибка вывода:
Выход:
Здесь, когда мы пытались скопировать весь основной строковый массив (str) в другой строковый массив (ы), мы получили ошибку (как показано на скриншоте1), тогда как, когда мы копировали его элемент за элементом, str был скопирован в s, и мы могли проверить это увидев второй выходной скриншот.
Вывод
Таким образом, строка является типом данных, который представляет собой массив символов и присутствует только в C ++. В Си мы объявляли как массив символов. Массив строк - это массив, состоящий из множества строк. При объявлении статически или динамически он имеет фиксированный размер, а при объявлении в виде вектора размер не является фиксированным. Каждый элемент и символ в конкретном элементе могут быть легко доступны с помощью индексации массива строк.
Рекомендуемые статьи
Это руководство по String Array в C ++. Здесь мы обсудим, как избыточный элемент в String Array в C ++, и выделение String Array в C ++. Вы также можете просмотреть другие наши статьи, чтобы узнать больше-
- Строковый массив в Python
- StringBuffer в Java
- Строковые функции Python
- Массивы в C ++
- Введение в String Array в C #
- Лучшие 11 функций и преимуществ C ++
- 8 лучших сравнений String и StringBuilder
- Массив Работать в Unix с синтаксисом?