Как ввести массив символов в C ++ в одну строку? - PullRequest
0 голосов
/ 28 декабря 2018

Я только что столкнулся с оператором ввода для массива char в c ++, и я не понял, как он работает.

char s[100];
cin >> s + 1;
cout << s + 1;

Вход: Гарольд

Выход: Гарольд

Может кто-нибудь объяснить мне, как это работает?

1 Ответ

0 голосов
/ 29 декабря 2018

Когда вы вводите «Гарольд», индексам от 1 до 6 (как вы делаете с s+1) будут назначены данные символы.Другие индексы по-прежнему содержат мусор.Этот массив выглядит так: {'X','H','a','r','o','l','d','X','X',........} (здесь «X» означает «мусор»)

Но дело в том, что когда вы хотите получить этот массив в качестве вывода из s+1 (буквально s[1]), он показываеттолько значение, которое вы присвоили.Отсюда вывод 'Harold'.

...