Подтвердить что ты не робот

Как я могу получить n-й символ строки?

У меня есть строка,

char* str = "HELLO"

Если бы я хотел получить только E от этого, как бы это сделать?

4b9b3361

Ответ 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 является указателем, вы можете использовать его, как если бы это был массив:

char char_E = str[1];
char char_L1 = str[2];
char char_O = str[4];

... и так далее. То, что вы также можете сделать, это "добавить" 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;
}