Ajuda - Busca - Membros - Calendário
Versão Completa: (Resolvido) [Dúvida] Manipulação de string em um vetor
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Glauco Machado
Eu aqui de novo!! biggrin.gif . Eis a questão agora:

-Leia um vetor contendo letras de uma frase inclusive os espaços em branco. Retirar os espaços em branco do vetor e depois escrevê-la.
Tentei o seguinte código:
CODE
Program Exercicio_9;
Var
    frase: array [1..10] of string;
    i: integer;
Begin
    for i := 1 to 10 do
    read (frase[i]);
    
    for i := 1 to 10 do
        if frase[i] = ' ' then
        begin
            frase[i] := frase[i + 1];
            frase[i + 1] := ' ';
        end;
    for i := 1 to 10 do
    write (frase[i]);
End.


Ele retira os espaços em branco, sim, porém eu tenho que digitar 10 frases em vez de uma sad.gif
Como faço para o programa terminar a leitura do vetor quando eu pressionar ENTER?
Obrigado.
Glauco Machado
Cheguei a este código, mas ainda tá errado!
O programa só elimina o 1° espaço em branco e faz a conta errada.
Alguém tem alguma sugestão?

CODE
Program Exercicio_9;

Var
    frase:string[51];
    i, cont:integer;
Begin
     cont := 0;
     readln (frase);
     for i := 1 to 20 do
     if (frase[i]) = ' ' then
     begin
         frase[i] := frase[i + 1];
        frase[i + 1] := ' ';
        cont := cont + 1;
     end;
     writeln ('Frase modificada: ', frase);
     writeln ('A frase continha ', cont, 'espaços em branco.');           
  
End.


Obrigado
Jhonas
QUOTE
Cheguei a este código, mas ainda tá errado!
O programa só elimina o 1° espaço em branco e faz a conta errada.


Glauco Machado ... isso é um execício de escola, vi que voce postou em outros foruns tambem

o correto é voce tentar conseguir fazer sozinho ... é justamente o fato de voce pensar em como resolver é que vai desenvolver o seu raciocínio lógico

mas vou te dar uma ajudinha

CODE
Var
  frase, result: string;
  i, count: integer;
Begin
  count := 0;
  result := '';
  readln(frase);

  for i := 1 to Length(frase) do
  begin
    if (frase[i]) = ' ' then
      Inc(count)
    else
      result := result + frase[i];
  end;

  writeln ('Frase modificada: ', result);
  writeln ('A frase continha ', count, ' espaços em branco.');

end.


abraço

Glauco Machado
Sim, Jhonas, é um exercício. Eu pus a questão lá em cima no 1° post.
Pedi ajuda porque não tava conseguindo resolver mesmo e sei q compreendendo este vou ter base para resolver outros.
Muito obrigado novamente. O programa está rodando redondinho.
Nas próximas dúvidas minhas você pode me dar dicas de como resolver em vez de fornecer o código pronto. Também será de grande valia, pois vai me auxiliar no raciocínio.

Obrigado e até a próxima. biggrin.gif
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.