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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2009, 18:33   #11
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

госпади. девачка, смотри сюда.

Код:
bool IsBinary(char *pStr) {
    while (*pStr) {
        if ( *pStr != '0' || *pStr != '1' ) {
            return false;
        }
        *pStr++;
    }
    return true;
}
эта функция принимает указатель на строку и возвращает true, если строка состоит из нулей и единиц, иначе false. Скопипать этот код в свой заголовочный файл (или в сорс файл, без разницы). Затем, создаешь обработчик нажатия на кнопку, там пишешь следующую вещь

Код:
char *str = Edit1->Text().c_str();
if (IsBinary(str)) {
    Label1->Caption = "Двоичное";
} else {
    Label1->Caption = "Не двоичное";
}
и радуйся жизни хватит за компом сидеть, погулять лучше сходи
vvviperrr вне форума Ответить с цитированием
Старый 24.06.2009, 18:36   #12
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

Цитата:
Сообщение от profi Посмотреть сообщение
vvviperrr как раз я правильно показал как приводить типы.
ты читать умеешь? я НЕ СОБИРАЛСЯ в СВОЕМ коде приводить типы. Я вызвал копирующий конструктор.

Цитата:
хм... по этому тексту я понял что ты вообще не разбираешся в билдере и в Си
да ладно поясните пожалуйста, где именно я не разбираюсь в чем то?)
vvviperrr вне форума Ответить с цитированием
Старый 24.06.2009, 18:41   #13
Anuta_Kotova
Пользователь
 
Аватар для Anuta_Kotova
 
Регистрация: 22.06.2009
Сообщений: 11
По умолчанию

Спасибо большое всё отлично,а погулять,когда практику сдам,250 задач и база данных
Учусь
Anuta_Kotova вне форума Ответить с цитированием
Старый 24.06.2009, 18:42   #14
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

vvviperrr хочу с вами поспорить (вы не против? ) Если мне не изменяет память, при работе с классами конструктор копирования применяется для создания копии объкта. Покажите свой код где вы копировали объект.
profi вне форума Ответить с цитированием
Старый 24.06.2009, 18:51   #15
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

profi
Почитайте книги перед тем как спорить.
Вот здесь к примеру http://www.citforum.ru/programming/c.../cpp_071.shtml
В данном случае приведение типов так, как его сделали вы - может привести к потере данных (вы же не знаете, перегружена ли операция приведения типов для класса AnsiString в char * и обратно). В данном случае, если вам уж так хочется привести типы, а не вызывать конструктор, лучше использовать *_cast.

ПыСы: И еще - убедительная просьба, личные вопросы решать в ЛС, или создавать соответствующую тему.
MaTBeu вне форума Ответить с цитированием
Старый 24.06.2009, 18:53   #16
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2profi разумеется можно. я только за.
пожалуйста

Код:
Edit->text = AnsiString(text);
вот тут я и использовал копирующий конструктор. я использую gnu/linux, к сожалению, у меня нет возможности проверить, так ли это в действительности, но судя логике и трезвости ребят из борляндии это так.

давайте же взгянем на ваш код
Цитата:
Edit->text = (AnsiString)text;
Приводим типы так
вы подумали, что я хочу сделать привидение типов, но это не так. Ничего страшного, с каждым бывает.
vvviperrr вне форума Ответить с цитированием
Старый 24.06.2009, 19:08   #17
Anuta_Kotova
Пользователь
 
Аватар для Anuta_Kotova
 
Регистрация: 22.06.2009
Сообщений: 11
Сообщение

Я сразу не обратила внимания,но он даёт ввести число только один раз.Куда нужно добавить цикл?
Учусь
Anuta_Kotova вне форума Ответить с цитированием
Старый 24.06.2009, 22:53   #18
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Anuta_Kotova
Я сразу не обратила внимания,но он даёт ввести число только один раз.Куда нужно добавить цикл?
В каком смысле один раз? Если вы ставите этот код в обработчик кнопки, то сколько раз ее нажмете, столько раз он и сработает.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.06.2009, 14:00   #19
Anuta_Kotova
Пользователь
 
Аватар для Anuta_Kotova
 
Регистрация: 22.06.2009
Сообщений: 11
Сообщение

Вот как я сдела и он действительно дает ввести число только один раз,пожалуйста помогите понять я все 250 задач осилила,осталось две вроде бы лёгких,но уже незнаю что делать..
Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

   bool IsBinary(char *pStr) {
    while (*pStr) {
        if ( *pStr != '0' || *pStr != '1' ) {
            return false;
        }
        *pStr++;
    }
    return true;
}                 



//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{   

 char *str = (Edit1->Text).c_str();
if (IsBinary(str)) {
    Label1->Caption = "Двоичное";
} else {
    Label1->Caption = "Простое";
}
}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Form1->Close();          
}
//---------------------------------------------------------------------------
Учусь

Последний раз редактировалось Sazary; 25.06.2009 в 15:46.
Anuta_Kotova вне форума Ответить с цитированием
Старый 25.06.2009, 15:50   #20
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Теперь понял, что вы имеете в виду. Тут небольшая ошибка в функции.
Исправьте:
Код:
bool IsBinary(char *pStr) {
    while (*pStr) {
        if ( *pStr != '0' && *pStr != '1' ) {
            return false;
        }
        *pStr++;
    }
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Символьный и строковый тип TwEEkcs Помощь студентам 1 24.06.2009 10:25
Строковый тип данных Mihael-Vlz Паскаль, Turbo Pascal, PascalABC.NET 7 23.04.2009 17:01
Строковый тип данных. Paul Oakenfold Паскаль, Turbo Pascal, PascalABC.NET 2 11.04.2009 21:05
Задачка на тему Строковый тип данных DJ Kost Помощь студентам 8 24.11.2008 15:53
символьный и строковый тип. ribka Помощь студентам 4 02.12.2007 13:25