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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
ligorlwow
0 / 0 / 0
Регистрация: 05.01.2012
Сообщений: 19
#1

Семантика массивов char. - C++

14.03.2012, 13:14. Просмотров 1484. Ответов 21
Метки нет (Все метки)

Добрый день. Мы все знаем, что в C и С++ создав два массива подрят.. запросив элемент привышающий размерность первого мы зайдем во второй. Так вот столкнулся со след проблемой в массивах типа char.
Написав следующее :
C++
1
2
3
4
char a[2];
a[0]='2';
a[1]='4';
cout<<a; // я получил 24 , что и мною ожидалось.
Написав следующее :
C++
1
2
3
4
5
char a[2];
int b=(int)'0';
a[0]='2';
a[1]='4';
cout<<a; // я получаю 240, что я лично не ожидал..
За место int b=(int)'0'; можно инициализовать любую переменную и мы получим мусор, я взял '0' для наглядности проблемы.. В последующим изменение переменной char a[2] она ведет себя как состоящая из 3 элементов. Плз, прошу помочь разобратся в сути проблемы. Только не пишити "Используй strcat и т.д...." мне надо.. понять, почему cout выводит массив из 3 , а не из 2 элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 13:14     Семантика массивов char.
Посмотрите здесь:

обработка массивов char - C++
Здравствуйте, помогите решить проблему. Мне необходимо сделать массив char, корорый в каждой своей ячейке будет сожде ржать два члена...

Сравнение 2-ух char массивов - C++
Помогите. Имеется 2 char массива. Один содержит слово вводимое пользователем, а второй это же слово, только наоборот. Необходимо сравнить...

Сравнение массивов типа Char - C++
У меня есть структура. Мне нужно проверит, (sportsmens.Sport==&quot;swimming&quot;); sportsmens.Sport - массив типа char

Переменная char и названия массивов - C++
Простите, если глупый вопрос, у меня есть десять массивов и функция поиска элемента в массиве. Чтобы десять раз не вызывать ее для...

Сортировка элементов массивов указателей на char - C++
Ни как не получается отсортировать это. Помогите отладить прогу плиз int main() { _getch(); char *arrptrs = {&quot;g&quot;,&quot;e&quot;, ...

Перемножение столбиком двух массивов char - C++
Здравствуйте. Задание таково: используя символьный массив char, который отображает два положительных целых числа - создать третий...

Передача в функции массивов типа char - ошибка - C++
Мне нужно передать в функцию 2 массива типа char (не string)и сделать в функции некоторую их обработку. Функция типа void. Но почему-то...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
17.03.2012, 14:39     Семантика массивов char. #21
Цитата Сообщение от ligorlwow Посмотреть сообщение
Но проблема заключалась именно в том, что указывая размерность массива.. я получаю некорректный вывод... Мне не жалко 4 байтов для указания размера массива, но даже указав размер, я не получаю должно результата.
если массив двухмерный то нужно два размера передавать и т п

Добавлено через 2 минуты
Цитата Сообщение от Toshkarik Посмотреть сообщение
Почему же? Ведь переменная счетчик точно так же сравнивается с размером на каждой итерации.
я имел в виду то что когда размер массива известен нам не надо проверять каждый символ на то евляется ли он сигналом о конце массива или нет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2012, 13:28     Семантика массивов char.
Еще ссылки по теме:

Вивести саме довге слово из 3 массивов char - C++
Вивести саме довге слово из 3 массивов char char name,surname,patronymic; Добавлено через 11 минут нужна только проверка!!!!

Сложение двух динамических массивов char* в одну строку - C++
В массивы вводятся данные, масcивы вида : int n,k; char *a,*b; a=new char; b=new char; Как вывести результирующую...

Перепишите листинг 4.4, применив класс C++ string вместо массивов char - C++
Листинг 4.4. insrt2 . срр // insrt2.cpp -- чтение более одного слова с помощью getline #include &lt;iostream&gt; int main() { using...

move семантика - C++
Сейчас стало появляться нечто вроде такого: class X { public: X (const X&amp; lvalue); // copy constructor X (X&amp;&amp; rvalue);...

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


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

Или воспользуйтесь поиском по форуму:
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
18.03.2012, 13:28     Семантика массивов char. #22
Цитата Сообщение от Van111 Посмотреть сообщение
каждый символ на то евляется ли он сигналом о конце массива или нет
Правильно, вместо этого мы проверяем не является ли этот элемент массива последним, сравнивая счетчик с переданным размером.
Поверка с переданным размером.
C++
1
for ( int i = 0; i < size; i++ ) ...
Проверка с помощью ограничивающего символа.
C++
1
for ( int i = 0; a[ i ] != '\0'; i++ ) ...
Как видно, проверка нужна в любом случае.
Yandex
Объявления
18.03.2012, 13:28     Семантика массивов char.
Ответ Создать тему
Опции темы

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