Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
как?)) перебор идет в массиве..закончится массив закончится цикл ведь смотри, у тебя же не до нуля считается...так что... а вот если массив от -10 до +10..на нуле и выйдет из цикла?
Любая символьная константа, например "ОЙ У ПОЛИ КРИНИЧКА", представляет собой массив символов. Во внутреннем представлении компилятор завершает такой массив символом "\0", так что любая программа может по нему легко обнаружить конец строки. Поэтому строка занимает в памяти на один символ больше, чем записано между двойными кавычками. Нумерация элементов массива начинается с нуля. Надо помнить, что, например 'T' - это символ(буква), а ' T ' - это строка, состоящая из двух символов: 'T' и '\0'. Отсюда следует, что пустых строк не бывает.
Вот такую конструкцию компилятор распознает как шесть символов + один завершающий символ '\0' итого массив будет из семи символов. Если же задавать размер массива явно
Код:
const int size = 10; // размер символьного массива ввода
char array[size]; // Массив с размером в 10 символов
То нужно учитывать что сюда вместится 9 символов + завершающий символ.
Это не ошибка, а условие не равно. Конструкция цикла, которую привёл iskander-k будет выводить символы по одному пока не встретится символ означающий конец строки. пока: проверяемый символ не равен завершаемому символу - производить вывод элементов массива "c"
Это один и вариантов вывода, полезно когда нужно проверить какой-либо отдельный символ, такая конструкция обеспечивает доступ ко всем символам строки. Вывести можно и прямо
Код:
#include <iostream>
using namespace std;
int main()
{
int z;
char c[] = "MyString"; // Выводимая строка
cout << "Out String = " << c << endl; // вывод как имеет ввиду Arbitr
for(int i = 0; c[i] != '\0'; i++)
cout << c[i]; // вывод iskander-k
cin >> z;
return 0;
}
//---------------------------------------------------------------------------
перебор идет в массиве..закончится массив закончится цикл ведь смотри, у тебя же не до нуля считается...так что... а вот если массив от -10 до +10..на нуле и выйдет из цикла?
c[0] не равно '\0' - цикл продолжается
c[1] не равно '\0' - цикл продолжается
c[2] не равно '\0' - цикл продолжается
c[3] не равно '\0' - цикл продолжается
c[4] не равно '\0' - цикл продолжается
c[5] не равно '\0' - цикл продолжается
c[6] не равно '\0' - цикл продолжается
c[7] не равно '\0' - цикл продолжается
c[8] не равно '\0' - цикл продолжается
c[9] равно '\0' - цикл прерывается