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

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

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

Вопросы по строкам - C++

26.05.2011, 22:43. Просмотров 428. Ответов 7
Метки нет (Все метки)

Доброго времени суток.
У меня несколько вопросов для понимания строк.

1)
C++
1
2
char a = {'a','b','c'};
            cout << a;
вывод: abc

Вопрос: как компилятор понял, что a это строка, ведь я не добавлял завершающий нулевой символ. А если верить справочникам, насколько я помню, это обязательно. Или он сам его добавил? если да, то куда?

2)
Массив a сожержит числа {0,1,2.... 123,124}

C++
1
2
3
4
5
6
int z;
z = a[2][3][4] = *((int*)a + 2*5*5 + 3*5 + 4);
cout << " \n z =" << z;
 
z = a[2][3][4] = *(((int *)(( int **)a + 2) + 3) + 4);
cout << " \n z =" << z;
Почему в первом случае работает верно и z = 69, а во втором - нет, и z = 9.

3)
C++
1
2
3
4
char * s5[6] = {{"a"},{"ab"},{"abc"},{"abcd"},{"abcde"},{"abcdef"}};
 
for (int i=0; i<6; i++)
  {cout << &s5[i] << ' ';}
вывод: 0012FF4C 0012FF50 0012FF54 0012FF58 0012FF5C 0012FF60

Объявлен массив из 6-ти указателей на строки неопред-й длины. Разница между адресами = 4. Но разве эти указатели не должны являться также адресами первого элемента соответствующей строки? А если это так, то как же умещаются в этих четырех байтах строки, размер к-х больше 4-х? или они хранятся не по этим адресам?

4) Как привести массив типа char[N][M] к типу (char **) , а потом к (char *)?

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2011, 22:43     Вопросы по строкам
Посмотрите здесь:

по строкам - C++
Пусть задан текст, заканчивающий точкой. Текст состоит из слов, разделенных пробелами. Слово последов. Русских cлов(как строчных, так и...

Задание по строкам! - C++
Удалить из заданной строки все группы символов, расположенные между круглыми скобками, включая сами скобки.

подскажите по строкам в С++ - C++
задание вот такое: Даны две строки, состоящие из слов, разделѐнных одним или несколькими пробелами. Из слов этих строк сформировать новую...

вопрос по строкам - C++
как я могу проверить Эдит на наличие запятой ? if (Edit1-&gt;Text ==&quot;,&quot;) ....... подскажите, пожалуйста. Добавлено...

Вопрос по строкам - C++
Доброго всем дня!!! Рябята, подскажите, признак окончания строки - это константа '\0'? Если да, то как мы можем считать строку из файла в...

Программка по строкам - C++
Начал изучать с++ ... возник вопрос по строкам: к примеру, в предложении переставить символы с заду на перед? Вообщем, хелп, товарищи!)

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
schdub
2945 / 1289 / 238
Регистрация: 19.01.2009
Сообщений: 3,366
Завершенные тесты: 1
26.05.2011, 23:03     Вопросы по строкам #2
Цитата Сообщение от Staratel Посмотреть сообщение
C++
1
2
char a = {'a','b','c'};
cout << a;
на каком компайлире компилиться сей код?
у мну на MSVS 2008
Код
error C2078: слишком много инициализаторов
Staratel
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 4
26.05.2011, 23:10  [ТС]     Вопросы по строкам #3
Цитата Сообщение от schdub Посмотреть сообщение
на каком компайлире компилиться сей код?
у мну на MSVS 2008
Код
error C2078: слишком много инициализаторов

всё проделывал в Студии 10-й
schdub
2945 / 1289 / 238
Регистрация: 19.01.2009
Сообщений: 3,366
Завершенные тесты: 1
26.05.2011, 23:15     Вопросы по строкам #4
Цитата Сообщение от Staratel Посмотреть сообщение
всё проделывал в Студии 10-й
хз, возможно - у мну нет под рукой 10-й студии, но что-то мне подсказывает, что брейсы пропущены:
C++
1
char a[] = {'a','b','c'};
Staratel
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 4
26.05.2011, 23:22  [ТС]     Вопросы по строкам #5
Цитата Сообщение от schdub Посмотреть сообщение
хз, возможно - у мну нет под рукой 10-й студии, но что-то мне подсказывает, что брейсы пропущены:
только что перепроверил, строка печатается, но некорректно : после символов идет несколько крякозябов
schdub
2945 / 1289 / 238
Регистрация: 19.01.2009
Сообщений: 3,366
Завершенные тесты: 1
26.05.2011, 23:32     Вопросы по строкам #6
Цитата Сообщение от Staratel Посмотреть сообщение
после символов идет несколько крякозябов
Цитата Сообщение от Staratel Посмотреть сообщение
Вопрос: как компилятор понял, что a это строка, ведь я не добавлял завершающий нулевой символ. А если верить справочникам, насколько я помню, это обязательно. Или он сам его добавил? если да, то куда?
И каков будет вывод? Добавляется ли нулевой символ?
Rexer
163 / 162 / 20
Регистрация: 10.10.2010
Сообщений: 724
27.05.2011, 08:41     Вопросы по строкам #7
я думаю,что ваша программа выводила из памяти символы пока не наткнулась на нулевой символ,а они встречаются в памяти часто
крокозябры просто встретились перед нулевым символом вот они и вывелись
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2011, 14:19     Вопросы по строкам
Еще ссылки по теме:

Поиск по строкам - C++
Как в матрице N x M реализовать поиск по строкам (начиная с первой строки) кол-ва чисел, которые не равны нулю?? И если это кол-во равно...

Комментарии к строкам - C++
#include &lt;iostream.h&gt; #include &lt;math.h&gt; #include&lt;conio.h&gt; using namespace std; int main() {clrscr(); int a, b; int*...

Сортировка по строкам - C++
Есть тхт файл со строчками, по типу: affghfhj fjfrddrh dhrhyhyjh dgdgwwdb nvnvhjrf dggrtht affhhghj

Задача по строкам - C++
Дана последовательность символов. Определить, является ли она правильной записью вещественного числа (тип string запрещен для...


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

Или воспользуйтесь поиском по форуму:
Staratel
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 4
30.05.2011, 14:19  [ТС]     Вопросы по строкам #8
Цитата Сообщение от schdub Посмотреть сообщение
И каков будет вывод? Добавляется ли нулевой символ?
не-а
Yandex
Объявления
30.05.2011, 14:19     Вопросы по строкам
Ответ Создать тему
Опции темы

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