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

По. разобрать программу с указателями и массивами ( авторы Либерти, Дмитрий ) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа, которая считает сколько тебе лет http://www.cyberforum.ru/cpp-beginners/thread962046.html
Добрый день, товарищи! В данный момент занимаюсь самостоятельным изучением языка С++. После написания программы-калькулятор, пришла в голову мысль написать программу, которая высчитывает сколько тебе лет. Однако написать получилось только самый простенький код, который считает года без месяцев, вот он: #include <iostream> using namespace std; int main () { setlocale (LC_ALL,...
C++ Создать стек, определить сколько елементов находится до минимального значения Создать стек с числами в диапазоне от –50 до +50. После создания стека выполнить индивидуальное задание. В конце работы все стеки должны быть удалены. Индивидуальное задание:Определить, сколько элементов стека, начиная от вершины, находится до элемента с минимальным значением. http://www.cyberforum.ru/cpp-beginners/thread962019.html
факториал сократить C++
Добрый день. Хотел спросить как сократить факториал? Формула приведена ниже, красным обведено. Вот сама формула записана в С++, и вместо верхней формулы я использовал х. Теперь вместо этого хнужно подставить формулу в сокращенном виде, а как это сделать я не знаю. Помогите пожалуйста, буду очень благодарен. p*=x/(k*(2*k+1)); #include "stdafx.h" #include <iostream>
Передача аргументов командной строки функции main() C++
Добрый день Дана задача: Напишите программу, которая запрашивает пароль, задаваемый в команд- ной строке. Ваша программа не должна реально выполнять какие-либо действия, за исключением выдачи сообщения о том, корректно ли был вве- ден пароль или нет. Мои потуги: #include <windows.h> #include <iostream>
C++ Вывести в цикле те цифры числа, которые не делятся на 3 без остатка. http://www.cyberforum.ru/cpp-beginners/thread961971.html
Вывести только те цифры числа, которые не делятся на 3 без остатка.
C++ Нахождение минимального элемента в стеке Вроде стек получилось реализовать, а вот как найти минимальный элемент без понятия. #include <iostream.h> #include <stdlib.h> #include <stdio.h> /*НАША СТРУКТУРА*/ struct List { подробнее

Показать сообщение отдельно
HedgehogLu
 Аватар для HedgehogLu
146 / 67 / 1
Регистрация: 04.09.2013
Сообщений: 250
25.09.2013, 16:09     По. разобрать программу с указателями и массивами ( авторы Либерти, Дмитрий )
С помощю getline мы вводим строку. И о чудо! я вижу, что теперь в массиве не 225 символов, а столько, сколько
я вводил.
- каким образом вы определяете что там меньше 255? Массив как был так и остался на 255 символов, просто getline в конец строки добавляет 0 (символ конца строки) и поэтому отображаются только те символы которые считала функция getline, однако дальнейшие значения в массиве как были так и остались.

bool GetWord(char* string, char* word, int& wordOffset) указатели на массив? int& нну забыл, и не сображу, это что?
тут все просто последний параметр передается ссылкой. Соответственно все изменения значения данной переменной внутри функции отобразятся на передаваемой переменной, по сути сюда и будет возвращаться позиция в строке с которой начинается слово.

Не по теме:

Ох же блин и выводов на экран тут. наверное для дебага



cout << "string[wordOffset]: " << string[wordOffset] << endl; ( стр.63 ) выводит 284 символа, причем сначала 4 строки бог знает каких символов и тут же без перехода введённую строку.
а вы уверенны что именно в этой стоке проблема, т.к. тут выводится только 1 символ а вот
строка выше
cout << "word: " << word << endl;
по началу выведет кто знает что и вообще кажется может вызвать ошибку, т.к. память под word выделяется, а вот значения не инициализируется. А строка как нам известно выводится то символа окончания строки (а именно нуля), чего может не оказаться, т.к. кто его знает что было в той памяти что выделена ранее.

char *p1, *p2; (стр.71) самая непонятка!!!!! Это же указатель. Вот мы ег обьявили

p1 = p2 = string+wordOffset; Что же в нем хранится? Указатель? почему при прямом выводе выводится не адрес, а строка? Я ожидал, что так буде вывиден cout << "p1: " << p1 << endl;адрес, а так cout << "*p1: " <<*p1 << endl;
строка, однако строка выводится прямо!!
ну тут тоже все ясно р1 и р2 указатели но в то же время мы помним, что строки мы так же объявляем через указатели и потому при выводе р1 и р2 выводятся как строки.
опять таки string это ведь тоже указатель и хранит в себе адрес памяти где начинается строка. Соответственно мы знаем, что char занимает 1 байт памяти, поэтому string+wordOffset по сути эквивалентно &string[wordOffset] т.е. адрес смещенный в строке.
По такому-же принципу p1++ производит смещение на 1 символ
 
Текущее время: 06:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru