Если бы я хотел получить только E от этого, как бы это сделать?
Ответ 1
char* str = "HELLO";
char c = str[1];
Имейте в виду, что массивы и строки в C начинаются с индексации 0, а не 1, поэтому "H" str[0], "E" str[1], первый "L" равен str[2] и так далее.
Ответ 2
Вы бы сделали:
char c = str[1];
Или даже:
char c = "Hello"[1];
изменить: обновить, чтобы найти "E".
Ответ 3
Арифметика массива и арифметика указателей могут использоваться взаимозаменяемо в C/С++ (это не относится ко всем случаям, но к тому времени, когда вы туда доберетесь, вы сами найдете случаи). Поэтому, хотя str является указателем, вы можете использовать его, как если бы это был массив:
... и так далее. То, что вы также можете сделать, это "добавить" 1 к значению указателя на символ str, который затем укажет на второй символ в строке. Тогда вы можете просто сделать:
str = str + 1; // makes it point to 'E' now
char myChar = *str;
Надеюсь, это поможет.
Ответ 4
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a = "HELLO";
char b = a[1];
cout << b;
return 0;
}