PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit der Methode SubString


Lord Nikon
2003-07-12, 16:39:24
Hi ,
ich möchte mit diesem Programm die Häufigkeit der eingegeben Buchstaben überprüfen und diese dann sortiert ausgeben.

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

#include <vcl.h>
#pragma hdrstop

#include "HuffmannU.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void TForm1::haufig()
{
char a='a';
zeichen="";
AnsiString test;
if (txtwort->Text!="")
{



Wort=txtwort->Text;

Wort=Wort.LowerCase();
for (int i=0;i<26;i++)
{
gefunden[i]=0;
}

for (int i=0;i<26;i++)
{
buchstaben[i]=a;
a++;

}
// Bestimmung der Häufigkeit
for (int i=0;i<Wort.Length();i++)
{
zeichen=Wort.SubString(i,1);



for (int o=0;o<26;o++)
{

if (zeichen==buchstaben[o])
{

gefunden[o]=gefunden[o]+1;

}
}
}
sort();

}

}




//---------------------------------------------------------------------------
void TForm1::sort()
{
for (int i=0;i<26;i++)
{
sortiert[i]=gefunden[i];
}


for (int i=0;i<26;i++)
for (int r=i+1;r<26;r++)
{
if (gefunden[i]<sortiert[r])
{

sortiert[r]=gefunden[i];
help=buchstaben[r];
buchstaben[r]=buchstaben[i];
buchstaben[i]=help;
}
}


for (int i=0;i<26;i++)
{
if (sortiert[i]!=0)
{
memaus->Lines->Add("Buchstabe " +AnsiString(buchstaben[i])+"kommt" + AnsiString(sortiert[i])+ " "+ "vor");
}
}
}
void __fastcall TForm1::btnstartClick(TObject *Sender)
{
haufig();
}
//---------------------------------------------------------------------------

Mein Problem liegt einmal darin , das der erste Buchstabe immer anscheinend 2 mal gezählt wird und deshalb der letzte eingegebene Buchstabe nicht ausgewertet wird.

Lord Nikon
2003-07-13, 11:31:17
EDIT:
Das Problem ist gelöst