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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
#1

Чем по умолчанию инициализируется символьный массив? - C++

18.06.2010, 18:15. Просмотров 2509. Ответов 16
Метки нет (Все метки)

если '/0' конец массива, то что представляют собой остальные??
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2010, 18:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чем по умолчанию инициализируется символьный массив? (C++):

Чем отличаются двумерный символьный массив и массив указателей на строки - C++
Двумерный символьный массив и массив указателей на строки. Собственно чем они отличаются? Заранее спасибо.

Не инициализируется массив - C++
Мужики помогите, ошибка какая-то. Работаю в visual studio 2008 express SP2 Вот кусок кода: #define JE 122 ... float...

Не инициализируется динамический одномерный массив - C++
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv) { int n = 10; float *a = new float; return 0; } После объявления...

Почему массив инициализируется с 7-ю элементами?.. - C++
Друзья! Требуется помощь:) Задача: вводим денежную сумму в формате $123,321,442 , выбираем из нее цифорки и записываем в переменную...

Почему массив изначально нулями не инициализируется? - C++
Всем доброго вечера. Имеется проблема такая проблема: есть массив, в котором количество элементов должно менять при выполнении условия. Я...

Литерный, символьный массив - C++
1)Объявить строку ng3 как литерный массив, не указав длину строки, и инициализировать ее значением “HTML++Java”. 2)Объявить массив er из...

16
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
18.06.2010, 21:17 #2
http://codepad.org/Gr9T1eUo

p.s. '\0'
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
18.06.2010, 22:52  [ТС] #3
ничо непонятно, что это за квадраты??
напремир если численный массив то по умолчанию там нули....
0
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
18.06.2010, 23:30 #4
не всегда. там нули если вы инициализировали массив нулями. а так там всякая фигня. также и в чаре всякий бред.
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
18.06.2010, 23:36 #5
Цитата Сообщение от Sanu0074 Посмотреть сообщение
если '/0' конец массива, то что представляют собой остальные??
там чтото, более того там и нуля может не быть
char s[20] = ""; - ноль будет первым элементом массива
char s[20]; - это скорее еще набор символов, чем строка
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
18.06.2010, 23:55  [ТС] #6
ну а вот как мне быть если надо из многомерного символьного массива выбрать те слова которые состоят из трёх букв, например если массив mass[5][180], получается в массиве пять слов но эти слова длинной не 180, вот поэтому я задал такой вопрос)))
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
19.06.2010, 00:05 #7
во-первых выбрать из трех букв - это значит они уже инициализированы
если уж там чтото есть, то остальные элементы - это сами символы
0
time2die
51 / 51 / 3
Регистрация: 25.05.2010
Сообщений: 182
19.06.2010, 00:18 #8
Вопрос! Чем поумолчанию инициализируется символьный массив?
массив это некоторая абстрактная модель для работы с памятью, при инициализации оного ты получаешь доступ к куску памяти, который раньше использовала другая программа, и в этой памяти может быть ВСЁ что угодно, принято это ВСЁ считать мусором
получается в массиве пять слов
получается,что в массиве 5 наборов по 180 символов, которые могут составлять слова\предложения, осталось только их подсчитать
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
19.06.2010, 00:25  [ТС] #9
всёравно чтото не вьеду, получается, например если слово из пяти букв а массив из 180элементов, то идут 5 символов а остальное мусор и в конце "\0", тогда как подсчитать колво этих букав?
0
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
19.06.2010, 00:29 #10
никак. потому как мусор тоже будет считатся за слова. Массив должен быть заполнен определенными елементами при инициализации. Если адвекватный текст - то слова разделены пробелами,запятыми, точками иными знаками препинания. и вам надо найти - есть ли растояние между этими знаками в 3 елемента, если да, то это искомое слово.
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
19.06.2010, 00:41  [ТС] #11
спс) те необойтись без пробелов и знаков препинания....
но всетаки наверно есть способ на проверку каждого элеиента массива на то - пренадлежит ли он например латинскому алфавиту и подсчитать колво этих символов в данной строке, тогда наверно и получим нужное......
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
19.06.2010, 00:51 #12
Цитата Сообщение от Sanu0074 Посмотреть сообщение
спс) те необойтись без пробелов и знаков препинания....
но всетаки наверно есть способ на проверку каждого элеиента массива на то - пренадлежит ли он например латинскому алфавиту и подсчитать колво этих символов в данной строке, тогда наверно и получим нужное......
такой лексикографический анализ больше похож на шаманство, так что лучше сразу все нормально делать
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
19.06.2010, 00:57  [ТС] #13
Цитата Сообщение от alex_x_x Посмотреть сообщение
такой лексикографический анализ больше похож на шаманство, так что лучше сразу все нормально делать
ну я думаю если при крайней необходимости, то можно использовать
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.06.2010, 05:46 #14
Цитата Сообщение от Sanu0074
если '/0' конец массива, то что представляют собой остальные??
C
1
char arr[100] = { '\0' };
все равны нулю

C
1
char arr[100];
все содержат случайные данные

для всех массивов и структур работает правило: если проинициализированы не все элементы, то все остальные инициализируются нулями

Добавлено через 5 минут
ещё внешние массивы есть, они вообще инициализируются нулями даже когда char arr[100];
0
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
19.06.2010, 06:03 #15
Sanu0074, если слово из 5 буква, а массив из 180 элементов...
все зависит от инициализации, вот в этом случае: char [180]="abcde"; сначала будут все пять букв по порядку, потом символ '\0', потом остальной мусор. потому что "abcde" - это строка "в ситиле Си", т.е. строка с нулем на конце.
'\0' - это якорь, он является терминалным (завершающим) символом любой последовательности символов которая трактуется, как строка текста. Нужно это для того, чтобы при выводе на экран строки можно было не заморачиваться о её длине и выводить все символы пока не встретися символ '\0'.
например:
C++
1
2
3
char p[100]="Hellow, world!";
int i=0;
while (p[i]!='\0') putc(p[i++]); //это аналогично cout << p;
кстати имя массива можно использовать в качестве ссылки на его первый элемент.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2010, 06:03
Привет! Вот еще темы с ответами:

32-разрядный символьный массив - C++
Как представить в виде 32 разрядного символьного Массива целое число?O_o

Массив указателей на символьный массив - C++
Программа пишет название месяца, после ввода переменной &quot;y&quot;. #include &lt;stdio.h&gt; #include &lt;iostream.h&gt; char* int2month(int nMonth); ...

Разделить символьный массив на лексемы - C++
Нужно разделить символьный массив на лексемы. Новая лексема - от и до мат. знака (&quot;+&quot;, &quot;-&quot;, &quot;*&quot;,...

Считывание строки в символьный массив - C++
1. Ввод из коммандной строки, число символов неизвестно. 2. Ввод из текстового файла, число символов неизвестно. Например, int...


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

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

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