Доступ к отдельным символам

К любому символу в строке можно обратиться как к элементу массива. Достаточно указать его индекс в квадратных скобках. Нумерация начинается с нуля. Можно как получить символ, так и изменить его. Если индекс выходит за границы диапазона, то возвращаемое значение не определено. Пример доступа к символу по индексу:

std::string str("строка");
std::cout << str[0] << std::endl; // с
str[0] = 'С';
std::cout << str[0] << std::endl; // С

Для доступа к символам можно также воспользоваться следующими методами:

  • at() — возвращает ссылку на символ, расположенный по индексу pos. Метод позволяет как получить символ, так и изменить его. Если индекс выходит за границы диапазона, то метод генерирует исключение. Прототипы метода:
reference at(size_type pos);
const_reference at(size_type pos) const;

Пример:

std::string str1("String1");
const std::string str2("String2");
std::string::reference ref1 = str1.at(0);
std::string::const_reference ref2 = str2.at(6);
ref1 = 's';
str1.at(6) = '3';
std::cout << str1 << std::endl;        // string3
std::cout << str1.at(1) << std::endl;  // t
std::cout << ref2 << std::endl;        // 2 (метод at())
std::cout << str2[6] << std::endl;     // 2 (оператор [])
  • front() — возвращает ссылку на первый символ в строке. Метод позволяет как получить символ, так и изменить его. Прототипы метода:
reference front() noexcept;
const_reference front() const noexcept;

Пример:

std::string str("String");
str.front() = 's';
std::cout << str.front() << std::endl; // s
std::cout << str << std::endl;         // string
  • back() — возвращает ссылку на последний символ в строке. Метод позволяет как получить символ, так и изменить его. Прототипы метода:
reference back() noexcept;
const_reference back() const noexcept;

Пример:

std::string str("String");
str.back() = 'G';
std::cout << str.back() << std::endl; // G
std::cout << str << std::endl;        // StrinG

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов