Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RareScrap
1 / 1 / 0
Регистрация: 14.10.2013
Сообщений: 85
#1

Символ конца массива char - C++

02.11.2013, 18:40. Просмотров 1182. Ответов 9
Метки нет (Все метки)

Всем доброго времени суток!

В книге Стефана Девиса "С++ для чайников" (страница 86) были затронуты массивы. Пусть существует такой массив...
C++
1
char szA[] = "abc"
Будет ли конец массива (szA[3]) инициализирован нулевым символом, то есть символом, которому соответствует код 0x0?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 18:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Символ конца массива char (C++):

Ввести с клавиатуры символ (в переменную char) и определить, соответствует ли введенный символ 'Q' или 'q' - C++
1)Ввести с клавиатуры символ (в переменную char) и определить, соответствует ли введенный символ 'Q' или 'q' (использовать логический...

В чем отличие двумерного массива типа char от массива указателей на char? - C++
В чем отличие двумерного массива типа char и массива указателей на char ?

Проверка конца строки и переменной char. - C++
Не когда не приходилась работать со строами. Прошу помощи как определить конец строки?

Символ конца строки - C++
помогите пожалуйста, пишу программу в Линуксе, не распознаётся '\n'... вот например когда посимвольно перебираю строку и дохожу до конца,...

Не считывается символ конца строки - C++
Доброго времени суток. У меня проблема в том, что дан файл f.txt, там написан текст в несколько строк, надо считать по 5 сиволов, заменить...

Определить символ конца строки в TextBox - C++
VS2012 Разрабатываю текстовый редактор. Функция: проверка на числа. Проверяет, есть ли в тексте не(цифры, пробелы, "-"), если есть,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
02.11.2013, 18:41 #2
Да.
1
RareScrap
1 / 1 / 0
Регистрация: 14.10.2013
Сообщений: 85
02.11.2013, 18:46  [ТС] #3
А будет ли любой массив вне зависимости от типа данных оканчивать на нулевой символ?
0
Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
02.11.2013, 18:50 #4
Цитата Сообщение от RareScrap Посмотреть сообщение
А будет ли любой массив вне зависимости от типа данных оканчивать на нулевой символ?
Окончательный элемент - 0 будет только в массиве символов, массивы остальных типов данных оканчиваются последним элементом массива.
1
RareScrap
1 / 1 / 0
Регистрация: 14.10.2013
Сообщений: 85
02.11.2013, 18:57  [ТС] #5
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
Окончательный элемент - 0
Насколько я знаю, код обычного нуля 0x30. Под нулем вы имели ввиду символ с кодом 0x0?
0
Max Dark
шКодер самоучка
1825 / 1627 / 592
Регистрация: 09.10.2013
Сообщений: 3,634
Записей в блоге: 6
Завершенные тесты: 2
02.11.2013, 19:13 #6
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
Окончательный элемент - 0 будет только в массиве символов, массивы остальных типов данных оканчиваются последним элементом массива.
и то в массиве символов он будет по умолчанию только если мы инициализируем его строкой с-формата
Но в большинстве случаев конец строки нужно устанавливать в ручную.

Добавлено через 1 минуту
Цитата Сообщение от RareScrap Посмотреть сообщение
Насколько я знаю, код обычного нуля 0x30. Под нулем вы имели ввиду символ с кодом 0x0?
он имел (char)0
скорее всего

Добавлено через 1 минуту
код '0' и 0 разные вещи
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
02.11.2013, 19:16 #7
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
Окончательный элемент - 0 будет только в массиве символов,
фиг вам в строке
вот так будет
C++
1
char a[]="aaa";
вот так нет
C++
1
char a[]={'a','a',a'};
строка это не просто массив символов это массив символов с завершающим 0
разница в кавычках ' 'символ " " строка

Добавлено через 1 минуту
Цитата Сообщение от RareScrap Посмотреть сообщение
Насколько я знаю, код обычного нуля 0x30. Под нулем вы имели ввиду символ с кодом 0x0
да
и записывается в тексте он так '\0'
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2013, 19:18 #8
Цитата Сообщение от RareScrap Посмотреть сообщение
А будет ли любой массив вне зависимости от типа данных оканчивать на нулевой символ?
Терминальный ноль ('\0') должен присутствотать в массивах char, которые обрабатываются, как строки стиля С. Функции, которые обрабатывают такие строки (strlen(), strcpy(), printf() и пр.), по терминальному нолю, определяют конец такой строки.
0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
02.11.2013, 19:18 #9
Цитата Сообщение от RareScrap Посмотреть сообщение
А будет ли любой массив вне зависимости от типа данных оканчивать на нулевой символ?
Нет. Очевидно, массив заканчивается на то, на что заканчивается его инициализатор. Это как раз "строки" заканчиваются нулевым символом, не массивы.
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
02.11.2013, 19:19 #10
Цитата Сообщение от RareScrap Посмотреть сообщение
Будет ли конец массива (szA[3]) инициализирован нулевым символом, то есть символом, которому соответствует код 0x0?
не будет
поскольку ноль не влезет размер массива 3 и буквы 3, нулю деваться некуда
а в szA[4] будет 3 символа плюс 0
но при такой записи
C++
1
char szA[] = "abc"
образуется массив из 4х символов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2013, 19:19
Привет! Вот еще темы с ответами:

Как определить символ конца строки - C++
Всем доброго времени суток! Работаю в VS2012 Такая задача - работаю со строками. Считываю файл (построчно функцией getline). И мне...

Esc как символ конца ввода - C++
Доброго времени суток. Есть такой вопрос. Как мне закончить ввод при нажатии esc. Например, если пользователь вводит некий текст (через cin...

Как добавить символ конца строки в вектор - C++
Здравствуйте, как я понимаю getline не записывает символ конца строки в массив, я попытался найти решение, но результата нет, может быть...

Как символ конца файла выглядит в двоичном представлении? - C++
Пытаюсь реализовать Хаффмана и столкнулась с такой проблемой: когда я записываю сформированный код в файл у меня в некоторых байтах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.11.2013, 19:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru