Символ по индексу в C++
Один символ можно взять из готовой строки.
Его тип - char, тот же, что у буквы
в одинарных кавычках.
После строки ставят квадратные скобки, а в скобках пишут номер этого символа.
Номер считает с нуля, а не с единицы. У строки
"abc" три места: номер 0, номер
1 и номер 2. Буква a стоит на нуле,
b на единице, c на двойке.
Скобки дают символ типа char, а не строку
из одной буквы. Скобка забирает один байт.
Русская буква занимает два байта, поэтому
первая скобка у такого слова - это не целая
буква. На английском тексте байт и буква
совпадают, и на экране видна буква. Первый
символ, номер 0:
std::string str = "abc";
std::cout << str[0] << "\n"; // выведет a
Второй символ, номер 1:
std::string str = "abc";
std::cout << str[1] << "\n"; // выведет b
Третий символ, номер 2:
std::string str = "abc";
std::cout << str[2] << "\n"; // выведет c
Когда номер последнего символа заранее не считают,
его берут как длину без единицы. У "abc"
длина равна 3, последний номер равен 2:
std::string str = "abc";
std::cout << str[str.size() - 1] << "\n"; // выведет c
Номер, равный длине, программу не останавливает.
Там лежит нулевой байт. У "abc" это номер
3:
std::string str = "abc";
std::cout << static_cast<int>(str[3]) << "\n"; // выведет 0
Дана строка:
std::string str = "dog";
Выведите первый символ этой строки.
Дана строка:
std::string str = "dog";
Выведите второй символ этой строки.
Дана строка:
std::string str = "dog";
Выведите третий символ этой строки.
Дана строка:
std::string str = "hello";
Выведите последний символ этой строки.
Дана строка:
std::string str = "code";
Выведите последний символ этой строки.
Дан следующий код:
std::string str = "sun";
std::cout << static_cast<int>(str[3]) << "\n";
Что выведет программа?