Ver Mensaje Individual
  #12  
Antiguo 14-10-2015
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ecfisa Ver Mensaje
Hola roman.

Cometí un error de copia/pega de una de las varias pruebas,de ahí el SetLength . (Aunque acabo de hacerle unas comprobaciones e igual funciona con espacios sobre el final)
En esta versión, S[I+1] se sale de la cadena al final, lo cual puede ser inseguro. Supongo que por eso habías agrandado en 1 la longitud de la cadena en la versión anterior; aunque aún tendrías que asegurarte que en ese lugar extra no tienes un espacio que de casualidad ande por ahí. ¿Por qué no así?

Código Delphi [-]
function IgnoreExtraSpaces(str: string): string;
var
  i: integer;
begin
  // SetLength(str, Length(str)+1);
  str := str + #0;
  for i := 1 to Length(str)-1 do
    if (str[i] <> ' ') or (str[i+1] <> ' ') then
      Result := Result + str[i];
end;

// Saludos
Responder Con Cita