DiamondStyle 0 Posted April 3, 2019 Report Share Posted April 3, 2019 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\". Link to post Share on other sites
nunopicado 1,251 Posted April 3, 2019 Report Share Posted April 3, 2019 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. Link to post Share on other sites
DiamondStyle 0 Posted April 3, 2019 Author Report Share Posted April 3, 2019 nuno, estou a usar o pascalzim Link to post Share on other sites
nunopicado 1,251 Posted April 3, 2019 Report Share Posted April 3, 2019 3 minutos atrás, DiamondStyle disse: nuno, estou a usar o pascalzim Ohhh, os meus pêsames! 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. Link to post Share on other sites
thoga31 577 Posted April 4, 2019 Report Share Posted April 4, 2019 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! Link to post Share on other sites
nunopicado 1,251 Posted April 4, 2019 Report Share Posted April 4, 2019 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. Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now