Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2012, 12:20   #1
Noob(c++)
Пользователь
 
Регистрация: 19.06.2012
Сообщений: 25
По умолчанию проблема с динамическим массивом

Ребят, столкнулся с проблемой изучаю совсем не долго С++,вообщем я имею задание, мне нужно ввести слово и вывести его наоборот с помощью функций которые даны в задании, вот я его сделал:
Код:
#include "stdafx.h"
#include "string.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ 
	char str[100];
	cout << "Enter the word:\n";
	gets(str);
	int dl = strlen(str);
	cout << "Result:\n";
	int i;
    for(i=dl-1; i>=0; i--) //вывод элементов массива
    cout<<str[i];
	getchar();
	getchar();
	return 0;
}
Но препод мне сказал: " Как сделать чтобы пользователь вводил неизвестно сколько символов а не 100, то бишь вводил до нажатия клавиши Enter" не знаю как осуществить помогите пожалуйста

Последний раз редактировалось Noob(c++); 19.06.2012 в 12:24.
Noob(c++) вне форума Ответить с цитированием
Старый 19.06.2012, 13:19   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Код:
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>

using namespace std;

int main()
{
	string str;
	cin >> str;
	copy(str.rbegin(), str.rend(), ostream_iterator<string::value_type>(cout, ""));
	cout << endl;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 19.06.2012, 13:25   #3
Noob(c++)
Пользователь
 
Регистрация: 19.06.2012
Сообщений: 25
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
Код:
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>

using namespace std;

int main()
{
	string str;
	cin >> str;
	copy(str.rbegin(), str.rend(), ostream_iterator<string::value_type>(cout, ""));
	cout << endl;
}
Спасибо.
Это весь код? Или кусочек ввода?
я просто стринги не изучал не понимаю этот кусочек, можете объяснить пожалуйста
Noob(c++) вне форума Ответить с цитированием
Старый 19.06.2012, 13:28   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Noob(c++)
весь. ну скомпилируй и проверь.
http://ideone.com/ZTBX4

Цитата:
я просто стринги не изучал не понимаю этот кусочек, можете объяснить пожалуйста
Цитата:
cin >> str; // ввод
copy(str.rbegin(), str.rend(), ostream_iterator<string::value_type >(cout, "")); // вывод
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 19.06.2012, 13:48   #5
Noob(c++)
Пользователь
 
Регистрация: 19.06.2012
Сообщений: 25
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2Noob(c++)
весь. ну скомпилируй и проверь.
http://ideone.com/ZTBX4
работать то работает, но я объяснить не смогу =( что мне надо почитать чтобы понять че тут к чему? и еще если я пишу предложение с пробелом то в твоём случае он читает всё до пробела, а в моём читал с пробелом, но даже суть не в этом мне нужно использовать ф-ии puts и strlen по заданию, не могли бы вы подсказать другой вариант, я думал что надо сделать дин массив, но не понимаю как сделать его именно с неизвестным размером, или как использовать вектор
Noob(c++) вне форума Ответить с цитированием
Старый 19.06.2012, 13:57   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Noob(c++)
ты просил вариант на с++, я тебе дал вариант на с++.
Цитата:
в твоём случае он читает всё до пробела, а в моём читал с пробелом
ты сказал, что нужно вводить СЛОВО, а не набор символов
Цитата:
или как использовать вектор
string практически тот же вектор
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 19.06.2012, 14:00   #7
Noob(c++)
Пользователь
 
Регистрация: 19.06.2012
Сообщений: 25
По умолчанию

прошу прощения за неточность моего задания, ну вообщем слово то длинным бесконечно не может быть, так что имеется ввиду что может предложение к примеру быть. Ну всё таки хотелось бы именно чтобы старый код мой сохранился, чтобы именно ввод переделать динам массивом
Noob(c++) вне форума Ответить с цитированием
Старый 19.06.2012, 14:06   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Noob(c++)
выделяешь память для n элементов, читаешь из потока посимвольно, пока не встретил символ перевода строки. если считал больше, чем n - перераспределяешь память на 2*n, к примеру. писать влом
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 19.06.2012, 14:09   #9
Noob(c++)
Пользователь
 
Регистрация: 19.06.2012
Сообщений: 25
По умолчанию

Спасибо за ответ, технологию примерную я знал, но не понимаю как это реализовать много прочитал статей про динамические массивы но так и не понял как сделать в моём случае.
Noob(c++) вне форума Ответить с цитированием
Старый 19.06.2012, 16:08   #10
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

Можно использовать realloc. Но это уже вроде в С-стиле.
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с динамическим массивом на С 4eburator Помощь студентам 4 30.09.2010 17:12
Проблема с динамическим массивом zumm Общие вопросы Delphi 3 09.07.2010 20:20
Проблема с динамическим массивом TheKnyazz Общие вопросы C/C++ 3 28.04.2009 18:37
Проблема с динамическим массивом dee_lv Помощь студентам 7 09.06.2008 16:58
проблема с динамическим массивом romeo007.06 Общие вопросы Delphi 1 03.04.2008 20:18