Cita:
Contar cuantas palabras empiezan con May
|
Hola Luisito2011.
Confeccioné una función que devuelve la cantidad de apariciones de una palabra determinada dentro de una frase, ignorando mayúsculas / minúsculas. Si bién hay maneras mas simples y elegantes de hacerlo, me remití a usar las funciónes que ví en tu código.
Pero no me ajuste en absoluto a la unidad que adjuntas (que no leí). La intención es acercarte una idea, si la función requiere algún ajuste debido a alguna restricción impuesta por la tarea, te queda a vos ver como implementarla.
Código Delphi
[-]
function ContarAparicion(Frase, Palabra: string): Integer;
var
i,c: Integer;
s: string;
begin
Frase:= ' ' + Frase;
Result:= 0;
for i:= 1 to Length(Frase) do
begin
if Frase[i] in[' ',',','.','(','"'] then begin
c:= i + 1;
while UpCase(Frase[c]) = UpCase(Palabra[c-i]) do Inc(c);
if c - i - 1 = Length(Palabra) then
Inc(Result);
end;
end;
end;
Ejemplos de llamada:
Código Delphi
[-]
var
Frase, Palabra: string;
begin
Frase:= 'En Mayo comen mayonesa mayormente los mayores';
Palabra:='may';
ShowMessage(IntToStr(ContarAparicion(Frase,Palabra))); Frase:= 'Unicamente una soga unia los árboles ';
Palabra:= 'un';
ShowMessage(IntToStr(ContarAparicion(Frase,Palabra))); end;
Saludos.