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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено через 1 минуту
Цитата Сообщение от RareScrap Посмотреть сообщение
Насколько я знаю, код обычного нуля 0x30. Под нулем вы имели ввиду символ с кодом 0x0
да
и записывается в тексте он так '\0'
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2013, 19:18     Символ конца массива char #8
Цитата Сообщение от RareScrap Посмотреть сообщение
А будет ли любой массив вне зависимости от типа данных оканчивать на нулевой символ?
Терминальный ноль ('\0') должен присутствотать в массивах char, которые обрабатываются, как строки стиля С. Функции, которые обрабатывают такие строки (strlen(), strcpy(), printf() и пр.), по терминальному нолю, определяют конец такой строки.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
02.11.2013, 19:18     Символ конца массива char #9
Цитата Сообщение от RareScrap Посмотреть сообщение
А будет ли любой массив вне зависимости от типа данных оканчивать на нулевой символ?
Нет. Очевидно, массив заканчивается на то, на что заканчивается его инициализатор. Это как раз "строки" заканчиваются нулевым символом, не массивы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2013, 19:19     Символ конца массива char
Еще ссылки по теме:

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

Возможно ли без использования цикла получить символ с конца нулевого аргумента main()? - C++
Использую имя файла как аргумент для предварительной настройки программы. Хочу без помощи поиска в цикле получить пред-пред-пред последний...

Считывается только первый символ char - C++
Всем привет! При введении данных с клавиатуры записывается только первый символ, а дальше программа пропускает дальнейшие действия....

Удалить последний символ в массиве char - C++
Здравствуйте, подскажите как удалить последний символ в массиве char ? Размер массива узнаю так: Text Добавлено через 3 минуты ...

Добавить в середину char строки символ - C++
Здравствуйте, подскажите пожалуйста как добавить символ в середину char строки. Есть char Hash1; Он содержит например...


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
02.11.2013, 19:19     Символ конца массива char #10
Цитата Сообщение от RareScrap Посмотреть сообщение
Будет ли конец массива (szA[3]) инициализирован нулевым символом, то есть символом, которому соответствует код 0x0?
не будет
поскольку ноль не влезет размер массива 3 и буквы 3, нулю деваться некуда
а в szA[4] будет 3 символа плюс 0
но при такой записи
C++
1
char szA[] = "abc"
образуется массив из 4х символов
Yandex
Объявления
02.11.2013, 19:19     Символ конца массива char
Ответ Создать тему
Опции темы

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