06. Массивы и строки
Что такое массив
Массив — это структура данных, которая хранит несколько значений одного типа под одним именем.Представьте полку с ячейками, где в каждой лежит число. Чтобы достать элемент, нужно знать номер ячейки — индекс.
Создание массива
#include <iostream>
using namespace std;int main() {
int numbers[5] = {10, 20, 30, 40, 50};
cout << numbers[0] << endl; // выведет первый элемент (10)
cout << numbers[4] << endl; // выведет пятый элемент (50)
return 0;
}
Как работают индексы
- Первый элемент массива имеет индекс 0.
- Последний элемент — размер - 1.
Изменение элементов
Вы можете изменять значения по индексу:
int scores[3] = {100, 80, 90};
scores[1] = 85; // меняем второй элемент
cout << scores[1]; // выведет 85
Перебор массива циклом
Часто массив используется вместе с циклом.
#include <iostream>
using namespace std;int main() {
int nums[5] = {2, 4, 6, 8, 10};
for (int i = 0; i < 5; i++) {
cout << "Элемент " << i << ": " << nums[i] << endl;
}
return 0;
}
Результат
Элемент 0: 2 Элемент 1: 4 Элемент 2: 6 Элемент 3: 8 Элемент 4: 10
Вычисления с массивами
Пример: подсчёт суммы всех элементов массива.
#include <iostream>
using namespace std;int main() {
int nums[5] = {5, 10, 15, 20, 25};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += nums[i];
}
cout << "Сумма элементов: " << sum << endl;
return 0;
}
Длина массива
В C++ нет автоматического свойства длины массива, но можно вычислить её так:
int arr[5] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Размер массива: " << size << endl;
Строки в C++
Строка — это набор символов. В C++ существует два способа работать со строками:- Массив символов (старый способ, из языка C).
- Класс string (современный и удобный способ).
Пример 1: массив символов
#include <iostream>
using namespace std;int main() {
char word[] = "Hello";
cout << word << endl;
return 0;
}
Пример 2: использование string
#include <iostream>
#include <string>
using namespace std;int main() {
string name = "Анна";
cout << "Привет, " << name << "!" << endl;
// изменение строки
name += " Иванова";
cout << name << endl;
// длина строки
cout << "Длина: " << name.length() << endl;
return 0;
}
Результат
Привет, Анна! Анна Иванова Длина: 12
Работа с символами
Каждую букву строки можно получить по индексу:
string word = "Hello";
cout << word[0]; // H
Перебор строки циклом
string city = "Nukus";
for (int i = 0; i < city.length(); i++) {
cout << city[i] << endl;
}
Сравнение строк
Вы можете сравнивать строки напрямую:
string a = "Hello";
string b = "World";if (a == b) {
cout << "Строки равны";
} else {
cout << "Строки разные";
}
Типичные ошибки новичков
- Выход за пределы массива (например, обращение к arr[10], если длина 5).
- Забыли про \0 в символьных массивах (нужно для окончания строки).
- Путают string и char[].
Мини-практика
Попробуйте сделать:- Программу, которая просит ввести 5 чисел и выводит их среднее значение.
- Программу, которая запрашивает строку и выводит её наоборот (например, Hello → olleH).
- Программу, которая считает количество гласных букв в слове.
Пример: реверс строки
#include <iostream>
#include <string>
using namespace std;int main() {
string text;
cout << "Введите слово: ";
cin >> text;
for (int i = text.length() - 1; i >= 0; i--) {
cout << text[i];
}
cout << endl;
return 0;
}
Советы новичкам
- Не бойтесь экспериментировать с размерами массива — попробуйте поменять их.
- Помните, что индексы начинаются с 0!
- Работая со строками, не забывайте подключать библиотеку <string>.
- Не выходите за пределы массива, чтобы избежать ошибок выполнения.
Итоги урока
Теперь вы знаете:- Что такое массив и как его использовать.
- Как работать со строками в C++.
- Как перебирать данные с помощью циклов.
- Как избегать ошибок при обращении к элементам.