Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

DiamondStyle

Remover espaços em braco de uma String ?

Recommended Posts

DiamondStyle

Olá pessoal, 

Eu gostaria de saber se alguém sabe como eu faço para retirar os espaços no meio da string. Ex: Nome: \"Alberto Silva\", e o programa deve retornar \"AlbertoSilva\". 

Share this post


Link to post
Share on other sites
nunopicado

Há várias formas de conseguires isso, sendo que o compilador que estás a usar também influencia quais podes usar...

Por exemplo, se o teu compilador suportar a função StringReplace, podes fazer simplesmente isto:

Nome := StringReplace(Nome, ' ', '', [rfReplaceAll]);

Outra forma simples seria com recurso a um ciclo:

while Pos(' ', Nome) > 0 do
  Delete(Result, Pos(' ', Nome), 1);

 


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
nunopicado
3 minutos atrás, DiamondStyle disse:

nuno, estou a usar o pascalzim

Ohhh, os meus pêsames! 
:P

Acho que a primeira forma não deve funcionar nessa coisa...
A segunda, em principio, não falha.


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
thoga31

Além da sugestão dada pelo @nunopicado, importa ter em conta também o que te é autorizado utilizar (estou a considerar que este é um exercício académico).

Segue uma versão que não recorre às funções Pos e Delete:

program test;

function RemSpaces(s : String) : String;
var i : Integer;
begin
    RemSpaces := '';
    for i := 1 to Length(s) do
        if s[i] <> ' ' then
            RemSpaces := RemSpaces + s[i];
end;

begin
    writeln(RemSpaces('Exemplo de uma string.'));
end.

 


Knowledge is free!

Share this post


Link to post
Share on other sites
nunopicado

Sim, essa é outra das muitas formas de o fazer...
Pessoalmente nunca passei cartão 'ao que podia usar'. A não ser que lá dissesse especificamente 'tem de usar isto' ou 'não pode usar aquilo', eu usava o que me parecesse mais eficaz. 
Mas se o @DiamondStyle achar que é o caso, pode ter essa atenção.


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.