Pascal/Turbo Pascal - Ayuda Strings!!!

 
Vista:

Ayuda Strings!!!

Publicado por delfin (1 intervención) el 22/10/2006 00:26:33
helpppp...aca tengo q hacer dos ejercicios con strings y la verda q se me complica alguien me podria tirar la idea (porque como hago si ingreso un stringleerlo caracter por caracter???)

ejerc1:Elaborar la función Reemplazablancos que devuelva la cadena de caracteres resultante de
reemplazar por “-” todos los blancos de la cadena de caracteres que recibe como parámetro. Ejemplo: Reemplazablancos(’hoy es 22’) debería devolver ’hoy-es-22’.

ejerc2:Elaborar la función Prolijafrase que recibe una cadena de caracteres como parámetro y devuelve otra cadena, donde las palabras estén separadas por un solo blanco. Considerar palabra a toda secuencia de caracteres que no sean blancos, comas o puntos. (Estos caracteres: blancos, comas y puntos se consideran separadores de palabras)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Strings!!!

Publicado por Carlos Guimaraenz (265 intervenciones) el 22/10/2006 02:16:23
Hola Delfin! Aquí tienes una ayuda:

Ambos ejercicios están en el mismo programa y devuelven el mismo texto ingresado por el usuario:

{*************************}
program Reemplazar;

uses crt;

{funcion para reemplazar los blancos por guiones}
function ReemplazaBlancos(fuente : string) : string;
var
aux : string; {string auxiliar, donde armo la frase temporal}
i : byte;
begin
aux:='';
{copio cada caracter en aux, reemplazando los espacios por guiones}
for i:=1 to Length(fuente) do
begin
if fuente[i] <> ' ' then
aux:=aux + fuente[i]
else
aux:=aux + '-';
end;
{retorno el valor contenido en aux}
ReemplazaBlancos:=aux;
end;

{funcion para emprolijar el texto}
function ProlijaFrase(fuente : string) : string;
var
aux : string;
i : byte;
sepa : set of char;
begin
aux:='';
sepa:=[' ',',','.']; {separadores}
i:=1;
while i <= Length(fuente) do
begin
aux:=aux + fuente[i];
if fuente[i] in sepa then
begin
i:=i + 1;
while (i < Length(fuente)) and (fuente[i] in sepa) do
i:=i + 1;
end
else
i:=i + 1;
end;
{retorno el valor contenido en aux}
ProlijaFrase:=aux;
end;

{CODIGO PRINCIPAL}
var
texto : string;
begin
ClrScr;
Write('Ingrese un texto: ');
ReadLn(texto); {leo un texto}
WriteLn;
Write(ReemplazaBlancos(texto)); {escribo el texto reemplazando los espacios}
WriteLn;
Write(ProlijaFrase(texto)); {escribo el texto emprolijado}
ReadLn;
end.
{**********************************}

Espero que te sea de utilidad. Un abrazo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar