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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2015, 17:06   #1
саша19923107
Новичок
Джуниор
 
Регистрация: 05.04.2015
Сообщений: 3
По умолчанию C++ builder 6 cтроки помогите плз

Делаю лабу в универ по строкам в оконном режиме. Нужно посчитать все скобки в одной строке. Но правда че-то у меня не сильно выходит посчитать слова у меня получается, а вот скобки не очень помогите если можно! вот исходник:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormActivate(TObject *Sender)
{
Form1->ComboBox1->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ComboBox1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if (Key == 13)
{
ComboBox1->Items->Add(ComboBox1->Text);
ComboBox1->Text=""; 			
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ComboBox1Click(TObject *Sender)
{
int n, i, nst;
nst = ComboBox1->ItemIndex;			   
String st = ComboBox1->Items->Strings[nst];    
if (st[1] != ')')   n = 1; 			   
else   n = 0;
for(i=1; i<st.Length(); i++)      		 
if(st[i] == ')' && st[i+1] != ')')  n++;
Edit1->Text = IntToStr(n);    		       
}
если убрать скобку то слова считает отлично, а вот со скобкой один результат 1.

Последний раз редактировалось Stilet; 05.04.2015 в 17:55.
саша19923107 вне форума Ответить с цитированием
Старый 05.04.2015, 17:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
if(st[i] == ')' && st[i+1] != ')') n++;
А зачем st[i+1] анализировать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2015, 18:46   #3
саша19923107
Новичок
Джуниор
 
Регистрация: 05.04.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А зачем st[i+1] анализировать?
ну вообще-то да согласен, это че то мне просто в голову взбрендило)) но все равно суть вопроса не меняет
саша19923107 вне форума Ответить с цитированием
Старый 05.04.2015, 19:45   #4
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Код:
char st[1]=')';
int k=0;//Количество скобок
for(int i=0;i<n;i++)
{
 if(st[1]==string[i])
 {
   k++;
 }
}
cout<<k;
string-cтрока где ищутся скобки;
spectrum988 вне форума Ответить с цитированием
Старый 05.04.2015, 19:55   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
суть вопроса не меняет
Знаешь, если сходить именно из фразы посчитать все скобки в одной строке.
то:
Код:
{
int n, i, nst;
nst = ComboBox1->ItemIndex;			   
String st = ComboBox1->Items->Strings[nst];    

for(i=1; i<st.Length(); i++)      		 
 if(st[i] == ')' || st[i] == '(')  n++;
Edit1->Text = IntToStr(n);    		       
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2015, 21:24   #6
саша19923107
Новичок
Джуниор
 
Регистрация: 05.04.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Знаешь, если сходить именно из фразы посчитать все скобки в одной строке.
то:
Код:
{
int n, i, nst;
nst = ComboBox1->ItemIndex;			   
String st = ComboBox1->Items->Strings[nst];    

for(i=1; i<st.Length(); i++)      		 
 if(st[i] == ')' || st[i] == '(')  n++;
Edit1->Text = IntToStr(n);    		       
}
спасибо))))))))

Последний раз редактировалось саша19923107; 05.04.2015 в 21:36.
саша19923107 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите ПЛЗ!!!!!! Хрустик Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 15.10.2009 12:08