Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Доступ к символам внутри C-строки
После определения C-строки в переменной сохраняется адрес первого символа. Иными словами, название переменной является указателем, который ссылается на первый символ строки. Поэтому доступ к символу в строке может осуществляться как по индексу (нумерация начинается с нуля), указанному внутри квадратных скобок, так и с использованием адресной арифметики. Например, следующие две инструкции вывода являются эквивалентными:
char str[] = "строка";
std::cout << str[1] << std::endl; // т
std::cout << *(str + 1) << std::endl; // т
Символ можно не только получить таким образом, но и изменить:
char str[] = "строка";
str[0] = 'С'; // Изменение с помощью индекса
*(str + 1) = 'Т'; // Изменение с помощью указателя
std::cout << str << std::endl; // СТрока
Обратите внимание на то, что отдельный символ указывается внутри апострофов, а не внутри кавычек. Если указать символ внутри кавычек, то вместо одного символа будет два: собственно сам символ плюс нулевой символ.
Объявить указатель и присвоить ему адрес строки можно следующим образом:
char *p = nullptr;
char str[] = "строка";
p = str;
*p = 'С';
++p; // Перемещаем указатель на второй символ
*p = 'Т';
std::cout << str << std::endl; // СТрока
Обратите внимание на то, что перед названием строки не указывается оператор &
, так как название переменной содержит адрес первого символа. Если использовать оператор &
, то необходимо дополнительно указать индекс внутри квадратных скобок:
p = &str[0]; // Эквивалентно: p = str;
При инициализации указателя ему можно присвоить строку. Такие строки нельзя изменять, поэтому обычно перед типом указывают ключевое слово const
. Пример:
const char *str = "String";
std::cout << str << std::endl; // String
Реквизиты
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов