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

Аналог функции strcpy - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ о связи классов и наследовании даты http://www.cyberforum.ru/cpp-beginners/thread641321.html
#ifndef base_hpp #define base_hpp #include "Data.hpp" #include <iostream> using namespace std; class base {
C++ Динамическая память. Функции. Массивы .Объекты Всем привет. Возник следующий вопрос: 1.Когда в c++ из функции возвращается объект (экземпляр какого-то класса), то насколько мне известно, создается временный объект, для хранения результат и последующего его возврата. Так вот,является ли следующий код корректным? MyClass MyClass::func(){ MyClass temp; ... return temp; } http://www.cyberforum.ru/cpp-beginners/thread641317.html
C++ Комплексные числа. Символическая форма записи
Сейчас делаю реализацию класса. Что-то мне подсказывает, что есть ошибки. Тут больше вопрос по математике, в коей я практически ничего не понимаю. Кто в теме, просмотрите перегрузку арифметических действий, все ли там верно? class Ccomplex { private: float x; float y; public: // Элементарное приравнивание и возврат значений void SetX(float value) {
C++ : error C2065: 'remainder' : undeclared identifier
Доброй ночи, вот изучаю Microsoft Visual Studio 2008 и в примере выскакивает данная ошибка(: error C2065: 'remainder' : undeclared identifier) , я так понимаю что в коде не хватает библиотеки только какой не пойму вот собственно говоря код: #include <stdafx.h> #include <iostream> using namespace std; int main() { int n, remaider; cout<<"Enter a number and pres Enter:"; cin>>n; ...
C++ Массив: Все элементы массива, кратные трем, записать в одномерный массив. http://www.cyberforum.ru/cpp-beginners/thread641309.html
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.
C++ Ошибки в коде Изучаю ООП с++ по книге Р.Лафоре. Как было написано в книге ввел код: #include <iostream> USING NAMESPACE STD; INT MAIN() { COUT << "Ó ÊÀÆÄÎÉ ÝÏÎÕÈ ÑÂÎÉ ßÇÛÊ\N"; RETURN 0; } запустил через build и выдало такую ошибку: подробнее

Показать сообщение отдельно
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.08.2012, 08:49
Цитата Сообщение от Вальдемар Посмотреть сообщение
b[i] = '\0'; - это нулевой символ для завершения строки, но для чего он здесь?
У вас копирование в buffer прекращается при считывании из str2 символа '\0', т.е. он в buffer не попадает. Поэтому нужно добавить или, уберите b[i] = '\0'; и посмотрите, что выведет cout << .

Цитата Сообщение от Вальдемар Посмотреть сообщение
И как работает этот указатель char* myStrcpy()?
Имя массива, при передаче в функцию и при возвращении из неё, преобразуется в указатель на начало массива. Именно это и надо cout <<, чтобы вывести массив char, как строку. Если вернуть *b, то это - содержимое указателя на начало массива, т.е. первый элемент массива b.
Обратите внимание, что в функцию вы массив правильно передаёте, как указатель на char
char myStrcpy(char *b, char *str2){... return *b;}
, а возвращаете просто char.

Добавлено через 22 минуты
b[i] = '\0'; - это нулевой символ для завершения строки, но для чего он здесь?
Если в конце строки, скопированной в buffer, будет отсутствовать '\0', то cout << buffer будет выводить из памяти последовательность байтов до тех пор, пока не встретит в памяти значение 0.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru