Ранее мы работали со строками, используя заголовочный файл <string> и тип данных string. Теперь рассмотрим более фундаментальный подход, основанный на типе данных char. Тип char представляет отдельный символ, а string — набор символов, то есть массив символов char.
Вывод кириллицы
Проблема вывода кириллицы в C++ возникает из-за того, что компьютер работает с нулями и единицами, а каждая буква имеет свой числовой код. По умолчанию компилятор корректно обрабатывает только латиницу. Для вывода кириллицы укажите кодировку.
В Windows стандартной кодировкой является Unicode (UTF-8). В C++ для её использования применяется функция setlocale из заголовочного файла <clocale>.
Практическое применение
Для вывода кириллицы:
- Подключите заголовочный файл: #include <clocale>
- Используйте функцию setlocale: setlocale(LC_CTYPE, "rus"); (или setlocale(LC_CTYPE, "Russian");)
Функция setlocale принимает два параметра: LC_CTYPE (тип символов) и строку, определяющую локаль (здесь — русский язык). Вызов setlocale должен быть до вывода текста на экран.
Работа с другими средами
В средах, отличных от Xcode (например, Visual Studio или Borland), для корректного отображения кириллицы может потребоваться подключение заголовочного файла <windows.h> и использование функций SetConsoleCP и SetConsoleOutputCP с кодировкой 1251. Это решение специфично для Windows и не работает на macOS.
#include <windows.h>
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
В Xcode подключение <windows.h> вызовет ошибку.
Работа с символами и строками
Символы
Тип данных char хранит отдельный символ:
char sim = 'D';
Строки как массивы символов
Строка — это массив символов char. Можно объявить строку, указав её размер:
char string[6] = {'H', 'e', 'l', 'l', 'o', '