Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature currently requires accessing the site using the built-in Safari browser.
'\0'-символ завершающий строковой массив. Благодаря нему можно определить где кончается массивКак понять символ завершающий строку равен нулю(=0)?
char c[]={"Массив сиволов\n Какой-то текст."};
for(i=0;c[i]!='\0';i++);//определяет сколько символов в массиве.
он их только переберет по одному до конца, а записать и вывести результат?)если не ошибаюсь
хоть на С++ ничего не делаю но изучал PHP а это упрощенный С цикл по другому задается
но кажется там ошибочка
это отрицание - не равно
(i=0;c[i]!='\0';i++);
ну да, только имел ввиду зачем оно там? просто не нужно..задаешь началоэто отрицание - не равно
и далее цикл
хотя в С как мне говорили больше условностей..может и нужно..
тогда выйдет за пределы цикла.просто не нужно..задаешь начало
как?)) перебор идет в массиве..закончится массив закончится цикл ведь смотри, у тебя же не до нуля считается...так что... а вот если массив от -10 до +10..на нуле и выйдет из цикла?тогда выйдет за пределы цикла.
Вот такую конструкцию компилятор распознает как шесть символов + один завершающий символ '\0' итого массив будет из семи символов. Если же задавать размер массива явноКод:char c[] = { "Массив" }; for(i = 0; c[i] != '\0'; i++); //определяет сколько символов в массиве.
const int size = 10; // размер символьного массива ввода
char array[size]; // Массив с размером в 10 символов
Это не ошибка, а условие не равно. Конструкция цикла, которую привёл iskander-k будет выводить символы по одному пока не встретится символ означающий конец строки.
for(i = 0; c[i] != '\0'; i++);
cout<<c[i];
Это один и вариантов вывода, полезно когда нужно проверить какой-либо отдельный символ, такая конструкция обеспечивает доступ ко всем символам строки. Вывести можно и прямону да, только имел ввиду зачем оно там? просто не нужно..задаешь начало
#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..на нуле и выйдет из цикла?
char c[] = "MyString"; // Выводимая строка
char c[] = { 'M', 'y', 'S', 't', 'r', 'i', 'n', 'g', '\0' };
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' - цикл прерывается
Воспринимай его как некую метку, необходимую компилятору\программисту для определения конца строки.Как понять символ завершающий строку равен нулю(=0)?
уже понял, не знал что завершается строка 0 простобудет выводить символы по одному пока не встретится символ означающий конец строки.
у нас счетчик по другому шел..не до нуля..Воспринимай его как некую метку, необходимую компилятору\программисту для определения конца строки.