• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ builder error

Object Storage Arubacloud
0 głosów
213 wizyt
pytanie zadane 7 października 2019 w C i C++ przez Pawel1452 Początkujący (380 p.)
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int szyfr=0;
 AnsiString slowo1;
 String slowo;
 char uno[999999];

 char gadery( char p)
{

        switch(p){
        case 'g': return 'a'; break;
        case 'a': return 'g'; break;
        case 'd': return 'e'; break;
        case 'e': return 'd'; break;
        case 'r': return 'y'; break;
        case 'y': return 'r'; break;
        case 'p': return 'o'; break;
        case 'o': return 'p'; break;
        case 'l': return 'u'; break;
        case 'u': return 'l'; break;
        case 'k': return 'i'; break;
        case 'i': return 'k'; break;
        default: return p;

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

void __fastcall TForm1::GADERYPOLUKI1Click(TObject *Sender)
{
szyfr=1;
  Label1->Caption="Wybrałeś GADERYPOLUKI";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::POLITYKARENU1Click(TObject *Sender)
{
 szyfr=2;
  Label1->Caption="Wybrałeś POLITYKARENU";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::KONIECMATURY1Click(TObject *Sender)
{
  szyfr=3;
  Label1->Caption="Wybrałeś KONIECMATURY";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::KACEMINUTOWY1Click(TObject *Sender)
{
 szyfr=4;
  Label1->Caption="Wybrałeś KACEMINUTOWY";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::KALUPINORETY1Click(TObject *Sender)
{
        char szyfr=5;
         Label1->Caption="Wybrałeś KALUPINORETY";

}
//---------------------------------------------------------------------------
void __fastcall TForm1::MORS1Click(TObject *Sender)
{
 szyfr=6;
         Label1->Caption="Wybrałeś MORS'A";

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{  if(szyfr!=0)
        {
                slowo=Memo1->Lines->GetText();
               
                switch(szyfr)
                {
                case 1:
                          for(int i=0;i<slowo.Length();i++)
                    {
                        Label2->Caption+=gadery(slowo[i]);

                    }

                
                }
        }
}
//---------------------------------------------------------------------------

Proszę o pomoc, wyskakuje błąd krytyczny. Co zepsułem?

komentarz 7 października 2019 przez tkz Nałogowiec (42,000 p.)
Pokaż ten komunikat.
komentarz 7 października 2019 przez Pawel1452 Początkujący (380 p.)

....

komentarz 7 października 2019 przez tkz Nałogowiec (42,000 p.)
a trochę czytelniejszy...
komentarz 7 października 2019 przez Pawel1452 Początkujący (380 p.)

Proszę

komentarz 7 października 2019 przez tkz Nałogowiec (42,000 p.)
Coś z pamięcią. Możliwe, że używasz usuniętych wskaźników. Debuger nic nie mówi?
komentarz 7 października 2019 przez Pawel1452 Początkujący (380 p.)
W programie nie używam żadnych wskaźników, a sam problem pojawia się tylko gdy używam iteratora i, żeby wydobyć jakiś znak ze słowa, jak używam liczby to nie ma problemu

np

for(int i=0;i<slowo.Length();i++)

                    {

                        Label2->Caption+=gadery(slowo[i]);

 

                    }

Nie działa

Label2->Caption+=gadery(slowo[2]);

Działa
komentarz 7 października 2019 przez tkz Nałogowiec (42,000 p.)

->

To jest wskaźnik. 

Length() na pewno z wielkiej? Bardziej Ci nie pomogę, bo nie znam się na tym środowisku. Możesz poszukać na stacku, albo po prostu w sieci. Z tego co widzę jest kilka podobnych problemów. 

komentarz 8 października 2019 przez niezalogowany

@Pawel1452,   gadery a jaki typ? gadery(i tu) a bez znaku +=  tylko =. 

1 odpowiedź

0 głosów
odpowiedź 8 października 2019 przez j23 Mędrzec (194,920 p.)
for (int i = 0; i < slowo.Length(); i++) {
    Label2->Caption += gadery(slowo[i]);
}

AFAIK indeksowanie w AnsiStringu jest od 1, a nie od 0, jak ma to miejsce w cywilizowanych językach (VCL -> Delphi -> Pascal).

 

BTW używanie C++ Bulidera 6 u schyłku 2019 roku, to jak puszczenie bąka w towarzystwie dam :) Używaj współczesnych środowisk programistycznych.

Podobne pytania

0 głosów
1 odpowiedź 1,935 wizyt
pytanie zadane 27 lutego 2016 w C i C++ przez kogigogi3 Nowicjusz (210 p.)
0 głosów
1 odpowiedź 93 wizyt
pytanie zadane 1 listopada 2019 w C i C++ przez Karol Wrona Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 268 wizyt
pytanie zadane 17 września 2019 w C i C++ przez Michał Wierzbiński Użytkownik (630 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...