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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2011, 19:26   #1
durka
 
Регистрация: 20.04.2011
Сообщений: 7
Печаль Переделать консольную прогу

Здравствуйте,помогите пожалуйста переделать консольную программу в формат C++ Builder'a , чтобы строка считывалась из поля Edit1, писалась в поле Edit2. ---------Программа должна предоставить поле для ввода строки, затем обработать ее, исключив символы между каждой парой круглых скобок(и сами скобки тоже), и вывести обработанную строку. Например из абв(грязь)гд получится абвгд.

В данном случае программа считывает строку в массив и печатает до тех пор,пока не встретит скобку "(" ,тоесть пока w не будет равно 1, и начинает печатать дальше,когда встретит скобку ")" ,тоесть w опять станет равным 0.

Код:
#include <stdio.h>
main()
{
char a[1000],c;
int n=0,i=0,w=0;
while((c=getchar())!='\n')
       {a[n]=c;
        n++;}
for(i=0;i<n;i++)
{
    if (a[i]=='(')
w=1;
else if (a[i]==')')
w=0;
if ((w==0)&&(a[i]!='\n')&&(a[i]!=')')&&(a[i]!='('))
printf("%c", a[i]);
}
}

Последний раз редактировалось ACE Valery; 21.04.2011 в 01:01.
durka вне форума Ответить с цитированием
Старый 20.04.2011, 20:25   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Вот код на Билдере.
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString str = Edit1->Text;
int i = str.AnsiPos("(");
int j = str.AnsiPos(")");
Edit2->Text = str.Delete(i,j-i+1);
}
Если ещё актуально.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 20.04.2011, 22:56   #3
durka
 
Регистрация: 20.04.2011
Сообщений: 7
По умолчанию

Меня почти с таким же кодом послал препод, обьяснив это тем,что это слишком просто и будет работать только в билдере. Вообщем вариант со стрингом не прокатит... Помогите переделать мою прогу( там всего то ничего,просто я ни бум бум в консольных командах..(
durka вне форума Ответить с цитированием
Старый 22.04.2011, 15:40   #4
artush1984
Форумчанин
 
Аватар для artush1984
 
Регистрация: 27.04.2009
Сообщений: 184
По умолчанию

Код:
std::string DoSomething(std::string& str){
	bool value = true;
	std::string res = "";
	for(int i = 0; i < str.size(); ++i){
		if(str[i] == '('){
			value = false;
			continue;
		}
		else if(str[i] == ')'){
			value = true;
			continue;
		}
		if( value ) res += str[i];
	}
	return res;
}
как то так
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
artush1984 вне форума Ответить с цитированием
Старый 22.04.2011, 16:56   #5
durka
 
Регистрация: 20.04.2011
Сообщений: 7
По умолчанию

спс,но куда это писать? мне нужно чтобы были 2 поля и кнопка,и в коде кнопки была написана эта фигня(код),привязанная к 2 полям. Ну или об}ясни,куда это писать
durka вне форума Ответить с цитированием
Старый 22.04.2011, 17:08   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от durka Посмотреть сообщение
Меня почти с таким же кодом послал препод, обьяснив это тем,что это слишком просто и будет работать только в билдере. Вообщем вариант со стрингом не прокатит... Помогите переделать мою прогу( там всего то ничего,просто я ни бум бум в консольных командах..(
У Вас чё, препод на голову больной?
Билдер был создан для того, что-бы облегчить нам жизнь, а не усложнить.
Зачем делать сложно, если есть средства для простых решений.
Я ещё понимаю в консольках...
artush1984 Вам дал решение. Поместите его в обработчик кнопки и всех делов.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 22.04.2011, 17:28   #7
durka
 
Регистрация: 20.04.2011
Сообщений: 7
По умолчанию

У меня 6 билдер,я вставил в код кнопки. При компиляции выделяется
первая строка этого кода и пишется
'string' is not a member of 'std' и

Statement missing
durka вне форума Ответить с цитированием
Старый 22.04.2011, 17:30   #8
durka
 
Регистрация: 20.04.2011
Сообщений: 7
По умолчанию

И где в этом коде поля Эдит1 и Эдит2 ( куда строку вводить..и где выводится
durka вне форума Ответить с цитированием
Старый 22.04.2011, 17:47   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от durka Посмотреть сообщение
И где в этом коде поля Эдит1 и Эдит2 ( куда строку вводить..и где выводится
Эту функцию объявляете вы сами. Обработчик кнопки передаёт в неё свои параметры через std::string& str. Результат получаем после вызова функции.
Например:
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
string S;
S = DoSomething(Edit1->Text);
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 22.04.2011 в 17:58.
Smitt&Wesson вне форума Ответить с цитированием
Старый 22.04.2011, 17:59   #10
durka
 
Регистрация: 20.04.2011
Сообщений: 7
По умолчанию

Вы можете дописать эту прогу до финальной версии с полями Эдит1 и Эдит2, чтобы я сразу создал поля и скопировал код в кнопку. Мой уровень знаний по предмету программирование соответствует никнейму ((
Я первые 3 строчки этого не понимаю вообше..
durka вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать прогу(доделать) Tuan Microsoft Office Excel 3 28.12.2010 07:14
Помогите переделать прогу (С++) Olya90 Помощь студентам 13 25.04.2009 19:35
переделать прогу daur3n Помощь студентам 2 10.03.2009 13:34
помогите переделать прогу +Hitman+ Паскаль, Turbo Pascal, PascalABC.NET 4 17.11.2008 23:26