Subprogramas em Pascal: Manipulação de Strings e Letras
Subprogramas em Pascal para Manipulação de Strings
1. Subprograma que receba uma string e uma letra e remova essa letra da string.
program strings;
function removerLetra(texto:string; letra:char):string;
var i:integer; resultado:string;
begin
resultado := '';
for i:=1 to length(texto) do
begin
if (texto[i] <> letra) then
begin
resultado := resultado + texto[i];
end;
end;
i := 1;
while (i <= length(texto)) do
begin
if (texto[i] <> letra) then
begin
resultado := resultado + texto[i];
end;
i := i + 1;
end;
removerLetra := resultado;
end;
2. Subprograma que substitui uma letra por outra na string
Receba uma string, search e replace, substituindo na string a letra search pela letra replace.
function trocarLetra(texto:string; search:char; replace:char):string;
var i:integer; resultado:string;
begin
resultado := '';
for i:=1 to length(texto) do
begin
if (texto[i] <> search) then
begin
resultado := resultado + texto[i];
end else begin
resultado := resultado + replace;
end;
end;
trocarLetra := resultado;
end;
3. Subprograma que conta as ocorrências de uma letra
Receba uma string e uma letra e retorne quantas vezes a letra aparece na string.
function contarLetra(texto:string; letra:char):integer;
var i,qtd:integer;
begin
qtd := 0;
for i:=1 to length(texto) do
begin
if (texto[i] = letra) then
begin
//qtd := qtd + i;
inc(qtd); //-> o mesmo que a linha de cima
end;
end;
contarLetra := qtd;
end;
4. Subprograma que busca uma palavra em um texto
Receba duas strings (palavra e texto) e retorne a posição em que a primeira string aparece na segunda.
function buscarPalavra(palavra:string; texto:string):integer;
var i,j,k:integer;
begin
buscarPalavra := 0;
if (length(texto) >= length(palavra)) then
begin
for i:=1 to length(texto) do
begin
if (texto[i] = palavra[1]) then
begin
j := i+1;
k := 2;
while ((k <= length(palavra)) and
(j <= length(texto)) and
(texto[j] = palavra[k])) do
begin
inc(j);
inc(k);
end;
if (k > length(palavra)) then
begin
buscarPalavra := i;
break; //interrompe o laço mais próximo
end;
end;
end;
end;
end;