Forum: Programmieren allgemein
by DeddyH,
8. Dez 2010
Ich würde das ja ganz anders machen, allerdings habe ich dann kein Delete drin *g*:
function WithoutVocals(const s: string): string;
var SrcIndex, DestIndex: integer;
begin
SetLength(Result, Length(s));
DestIndex := 0;
for SrcIndex := 1 to Length(s) do
if not (Upcase(s) in ) then
begin
inc(DestIndex);
Forum: Programmieren allgemein
by DeddyH,
8. Dez 2010
Ich kann Dir nicht folgen: wenn ein Vokal gefunden wird, wird er gelöscht und der Zeichenindex dekrementiert, anschließend in jedem Fall inkrementiert, so dass er auf dem nächsten Zeichen steht. Da sollten doch auch doppelte Vokale korrekt erkannt werden (gut, über das hin und her kann man sich streiten, funktionieren sollte es aber).
Forum: Programmieren allgemein
by DeddyH,
8. Dez 2010
:wall: Stimmt, das liegt an der "kreativen" Einrückung.
Forum: Programmieren allgemein
by DeddyH,
8. Dez 2010
Wieso? Es wird ja keine For-Schleife verwendet, da ist das in der Tat notwendig.
Forum: Programmieren allgemein
by DeddyH,
8. Dez 2010
Das Hochzählen von i gehört aber mit in die While-Schleife, oder nicht? ;)
Forum: Programmieren allgemein
by DeddyH,
7. Dez 2010
Eine sehr unperformante Variante: alle Vokale in Groß- und Kleinschreibung in einem konstanten Array deklarieren. Dann dieses Array in einer Schleife durchgehen und dann in einer weiteren Schleife die Position des aktuellen Vokals ermitteln und solange löschen, bis dieser Vokal nicht mehr enthalten ist, Pos also 0 zurückgibt.